Introdução
Automatizar processos repetitivos é uma dos papéis essências tanto para administradores de sistemas como para programadores. Existem diversas ferramentas que auxiliam nesse processo, uma delas é o Ansible, ela facilita a desenvolvimento do de configuração de servidor automatizado, estabelecendo procedimentos padrão para novos servidores e, ao mesmo tempo, reduzindo o erro humano associado a configurações manuais.
O Ansible oferece uma arquitetura simples que não requer a instalação de software especial nos nós, somente a presença do Python instalado. Ele também fornece um conjunto robusto de recursos e módulos integrados que facilitam a escrita de scripts de automação.
Antes de tudo
Para começarmos a escrever e testar as nossas automações vamos precisar de:
- Um Nó de controle Ansible: De forma resumida é máquina com no caso deste exemplo a minha maquina, que possui um elemantary OS, variante do Ubuntu, vamos instalar o Ansible nessa máquina e configurar para acessar o Host utilizando ssh key, você pode utilizar esse tutorial para configurar a sua cloud.
- Um ou mais Ansible Hosts : um ou mais servidores Ubuntu 20.04 remotos.
Vamos criar um novo usuario sudo para realizar as nossas operações
# adduser sammy
E escolha uma senha.
Caso você já tenha configurado o acesso direto copiando a chave ssh, você tera que fazer o mesmo processo só que agora com o novo usuario
ssh-copy-id -i ~/.ssh/absam sammy@nat-31184.nuvem-us-04.absamcloud.com -p 11484
Vamos começar
Primeiramente vamos utilizar como base o um playbook
cd ~ git clone https://github.com/do-community/ansible-playbooks.git cd ansible-playbooks
Os arquivos de nosso interesse estão localizados dentro da setup_ubuntu1804
pasta, que possui a seguinte estrutura:
setup_ubuntu1804
├── playbook.yml
└── vars
└── default.yml
Aqui está o que cada um desses arquivos são:
vars/default.yml
: Arquivo de variável para personalizar as configurações do manual.playbook.yml
: O arquivo do manual, contendo as tarefas a serem executadas no (s) servidor (es) remoto (s).
Instale o Ansible no nó de controle:
sudo apt install ansible
Instale nos HOSTS o python
sudo apt install python
Vamos criar o nosso inventario, criaremos o arquivo inventory.yml:
[webservers] server1 ansible_host=IPDOSERVIDOR ansible_port=PORTA
Agora vamos rodar o nosso playbook:
ansible-playbook playbook.yml -i inventory.yml -u root
A saida esperada é: