O objetivo desse projeto é fazer o deploy de uma aplicação web que faz consultas ao servido de banco de dados de maneira automatizada com o ansible.
- Ansible
- Estrutura de arquivos Ansible
- Código reutilizável
- Apache2
- Banco de dados
- Par de chaves pública e privada
- Vagrant
1 - Utilizei o vagrant para provisionar as instâncias do projeto: controle (ansible), web e db.
2 - Configuração da máquina controle
- #apt update -y
- #apt install git -y
- #apt install ansible -y
- #cd /opt
- #mkdir expressapp
- #cd expressapp
- #git clone https://github.com/ySodre/ansible-expressapp.git
- #cd ansible-expressapp
3 - Gerar par de chaves para os servidor WEB e DB e importar para os servidores, por padrão o usuário e senha das máquinas provisionadas pelo vagrant é: vagrant.
- #ssh-keygen
- #ssh-copy-id vagrant@ip_db
- #ssh-copy-id vagrant@ip_web
- #ansible -i hosts all -m ping
Você deverá ver o seguinte retorno.
Nesse projeto existe apenas uma váriável de ambiente que é o IP do banco de dados então no momento da execução é necessário passar a váriavel informando qual o IP do servidor de banco de dados.
- #ansible-playbook -i hosts -e "db_ip=ip_db" playbook.yml
Ao finalizar você deverá ver o resultado das tarefas sem erros
Como estamos trabalhando com IPs privados, será necessário editar o arquivo hosts da sua máquina e criar o apontamento necessário.
Exemplo em windows. Caminho: C:\Windows\System32\drivers\etc\hosts
Exemplo em Linux. Caminho /etc/hosts
O resultado esperado é que ao digitar express.asf.com abra o website da aplicação e além disso na guia de backups precisa aparecer dois backups, validando a comunicação com o banco de dados.