Ansible é uma ferramenta de automação popular, gratuita e de código aberto que nos permite automatizar tarefas de DevOps, como gerenciamento de configuração, implantação de aplicativos etc.
Combinar Ansible com GitHub Actions nos permite automatizar a execução de playbooks Ansible sempre que um evento específico ocorre em um repositório, como um push para o branch principal.
Este tutorial ensina como configurar uma ação GitHub para executar um playbook Ansible que é útil para automatizar a implantação em resposta a alterações de código.
Pré-requisitos:
Antes de prosseguir, certifique-se de ter o seguinte:
- Uma conta GitHub
- Um repositório GitHub existente
- Conhecimento básico dos manuais do Ansible
- Uma máquina de destino onde o Ansible pode executar as tarefas. Certifique-se de que o Ansible possa se conectar a essas máquinas por meio de um executor GitHub.
Etapa 1: configurar o ambiente Ansible
Crie e armazene o manual do Ansible e todos os arquivos relacionados no repositório GitHub. Isso deve incluir arquivos como modelos de funções, variáveis, etc.
Um exemplo de manual é o seguinte:
---- nome: certifique-se de que o Nginx esteja instalado em servidores web
hosts: servidor web
tornar-se: sim
tarefas:
- nome: Atualizar cache do apt
adequado:
update_cache: sim
- nome: Instalar Nginx
adequado:
nome: nginx
estado: presente
Certifique-se de ter um arquivo de inventário especificando as máquinas de destino do Ansible.
Etapa 2: configure os segredos no repositório GitHub
Dado que o manual precisa de informações confidenciais, como chaves SSH ou senhas, o GitHub oferece uma maneira de armazenar os segredos com segurança:
Navegue até o seu repositório GitHub.
Vá para Configurações > Segredos e Variáveis -> Ações -> Novo segredo do repositório.
Etapa 3: crie o fluxo de trabalho de ação do GitHub
No repositório, crie um diretório “.github/workflows”. Dentro deste diretório, crie um arquivo YAML para seu fluxo de trabalho.
Adicione o fluxo de trabalho da seguinte maneira:
nome: Executar o Ansible Playbooksobre:
empurrar:
galhos:
- mestre
empregos:
implantar:
executado: ubuntu-mais recente
passos:
- nome: Código de checkout
usa: ações/checkout@v2
- nome: Configurando chave SSH
executar: |
echo '${{ secrets.SSH_PRIVATE_KEY }}' > private_key.pem
chmod 600 chave_privada.pem
- nome: Executar o Ansible Playbook
executar: |
atualização do sudo apt
sudo apt install -y ansible
ansible-playbook -i hosts.ini meu-playbook.yml --private-key=private_key.pem --user=${{ secrets.REMOTE_USER }}
Etapa 4: acione o fluxo de trabalho
Sempre que você enviar para o branch master, o GitHub executará automaticamente esse fluxo de trabalho e, assim, executará o playbook.
Conclusão
É isso. Abordamos como executar um manual do Ansible usando as ações do Github.