Como utilizar o Ansible para Automatizar a Configuração de um Servidor Ubuntu

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 [email protected] -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_ubuntu1804pasta, 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 é:

saida do ansible playbook