Ansible é uma ótima maneira de implantar mudanças em massa em várias máquinas. Por exemplo, usei-o para fazer algumas configurações básicas em uma nova máquina e para atualizar vários hosts simultaneamente. Também é importante ter em mente que o Ansible não é usado apenas em ambientes de homelab, mas também é muito popular em ambientes corporativos, o que o torna uma habilidade muito valiosa.
Ansible é uma ótima maneira de implantar mudanças em massa em várias máquinas. Por exemplo, usei-o para fazer algumas configurações básicas em uma nova máquina e para atualizar vários hosts simultaneamente. Também é importante ter em mente que o Ansible não é usado apenas em ambientes de homelab, mas também é muito popular em ambientes corporativos, o que o torna uma habilidade muito valiosa.
Configurando o Ansible em uma nova máquina
Primeiro, precisamos instalar o pacote `ansible`, deve ser tão simples quanto:
`sudo apt update && sudo apt install ansible`
E precisamos criar nosso diretório Ansible para trabalhar:
`mkdir ~/ansible && cd ~/ansible`
Agora você deve estar no diretório Ansible em sua máquina local.
Visão geral do Ansible
Usamos os dois recursos principais do Ansible, inventários, que armazenam todos os seus hosts, e playbooks, que contêm as “instruções” para executar nos hosts. Para que o Ansible leia nosso playbook e execute as ações, ele precisa saber onde estão os hosts, ou seja, qual é o arquivo de inventário. É apenas um “inventário” de todos os hosts.
Agora temos os próprios playbooks, uma vez que o Ansible leu o inventário e está ciente de todos os hosts, ele começa a procurar o que fazer. Esse é o playbook, que é apenas um arquivo YAML simples, que utiliza “módulos” para executar as tarefas. A documentação sobre os referidos módulos pode ser encontrada no Site Ansible. Se houver algo que não esteja claro, isso [vídeo Ansible iniciante] da NetworkChuck faz um bom trabalho explicando as coisas.
Criando nosso inventário Ansible
Agora que temos uma compreensão básica do Ansible e de como ele funciona, podemos criar nosso inventário. O formato pode ser em YAML ou INI, para simplificar, usaremos INI e adicionaremos apenas um host.
Aqui está um arquivo de exemplo:
Inventory.ini:
“`ini
[poderoso]
192.168.1.78
""
Nomeie-o `inventory.ini` em seu diretório `ansible`. Este arquivo cria um “grupo” de `poderoso` com um único host de `192.168.1.78`. Podemos usar isso em nossos playbooks mais tarde. Você pode fornecer qualquer nome de grupo e IP que desejar, dependendo da sua configuração. Você também pode adicionar mais hosts ao grupo, se necessário.
Como implantar playbooks do Ansible
Primeiro, queremos verificar se o Ansible está funcionando:
Lembre-se de que nossa chave pública ssh deve estar no arquivo author_keys no host que estamos tentando acessar. Caso contrário, este comando falhará. Estamos usando o grupo `powerful`, mas use o que você nomeou.
`ansible -i ./inventory.ini -m ping -u administrador poderoso`
Se isso funcionar, podemos provisionar nossos playbooks nesse nó.
O playbook que estamos implantando simplesmente atualiza o sistema, reinicializa-o e espera que ele volte a ficar online. Se você tiver vários nós no grupo, ele passará por cada nó, um por um, esperando que o anterior volte a ficar online antes de reiniciar o próximo. Isso dá aos serviços no nó tempo adequado para desligar e migrar se você estiver usando algo como Enxame Docker.
atualizar.yml:
“` Yaml
– nome: Atualize todos os nós e reinicie
coletar_fatos: não
hosts: “{{ variables_hosts }}”
tornar-se: sim
série: 1
tarefas:
– nome: Atualizando e Atualizando | {{ Inventory_hostname }}
apto:
# força compatibilidade com versões anteriores
force_apt_get: sim
update_cache: sim
atualização: 'sim'
– nome: Reiniciar | {{ Inventory_hostname }}
reiniciar:
# quanto tempo espera o nó voltar a ficar online após a reinicialização
tempo_reinicialização: 300
# quanto tempo esperar para reiniciar após a conclusão da tarefa anterior (apt)
pré_reboot_delay: 60
– nome: Ping | {{ Inventory_hostname }}
pingar:
– nome: Pausa | {{ Inventory_hostname }}
pausa:
minutos: 5
""
`ansible-playbook -i ./inventory.ini -e variables_hosts=powerful -u administrador -K ./update.yml`

Explicação das bandeiras:
– -i: Especifique o arquivo de inventário.
– -e: Temos que especificar o host, no playbook temos uma variável `variable_hosts`, que é o que é passado para o playbook.
– -u: Este é o usuário usado para executar os comandos no host.
– -K: Isso diz ao playbook para solicitar ao usuário a senha do sudo, caso contrário, o playbook falhará.
Pensamentos de Encerramento
Ansible é uma ferramenta incrivelmente poderosa e versátil que pode ser usada para uma variedade de coisas. Mal arranhamos a superfície com este artigo, mas você deve continuar experimentando e automatizando tarefas para aprender mais sobre isso. Seja automatizando implantações do Kubernetes ou apenas atualizando seus sistemas como fizemos hoje.
-Ethan Edwards
Envolva-se com a StorageReview
Newsletter | YouTube | LinkedIn | Instagram | Twitter | Facebook | TikTok | RSS feed