Esse repositório contém os artefatos usados na demonstração de Ansible Engine (Ansible CLI) como camada de automação de deployment (Continuous Deployment - CD) integrado a um fluxo de GitHub Actions.
Para exemplificar a aplicação, estamos usando um fork do código desenvolvido pela Código Fonte TV no episódio #34 escrito em JavaScript (frontend) e Deno (backend).
Como esse repositório faz uso de Git Submodules, ao clonar você precisa usar:
git clone https://github.com/davivcgarcia/demo-ansible-github.git --recursive
Mais informações aqui.
Para execução local do Ansible, primeiro crie seu inventário, seguindo o modelo abaixo:
cat <<<EOF > inventory
[frontend]
servidor ansible_host=192.168.2.30 ansible_user=usuario
[backend]
servidor ansible_host=192.168.2.30 ansible_user=usuario
EOF
E depois execute o playbook de implantação e depois o de validação:
ansible-playbook -i inventory playbook_deploy.yml
ansible-playbook -i inventory playbook_verify.yml
Caso precise descomissionar a aplicação, execute:
ansible-playbook -i inventory playbook_remove.yml
Ao clonar esse repositório é esperado que os fluxos de Continuous Integration (CI) funcionem sem nenhum tipo de modificação. Já para o de Continuous Deployment (CD), basta configurar os seguintes secrets:
- SSH_PRIVATE_KEY: Conteúdo da chave privada de SSH para acessar o servidor externo.
- INVENTORY: Conteúdo do arquivo de inventário (mesmo formato usado na execução manual)
Caso tenha alguma dificuldade, por favor reporte problema que eu tento ajudar! =D