Por onde começar com Ansible?

Michelle Mesquita
3 min readFeb 21, 2022

--

Ansible é uma ferramenta muito conhecida no mundo DevOps, principalmente por conta do conceito de IaC (Infrastructure as Code).

Esse conceito é muito interessante, pois apenas com um script, é possível configurar diversas máquinas de apenas uma só vez.

Por conta disso, resolvi criar um pequeno projeto para mostrar esse conceito em prática! Nesse projeto, iremos instalar o Docker e subiremos um container no nosso host que chamaremos de "target1"

Para iniciarmos, precisamos utilizar 2 VMs (Máquinas virtuais) ou a máquina host e uma segunda máquina para teste. Por conta disso, a máquina principal, que será o nosso controller , será instalado o Ansible

Para instalar o Ansible, usaremos os comandos no nosso ansible-controller:

sudo yum install epel-releasesudo yum install ansible

O primeiro comando será usado para encontrar o repositório do Ansible. Isso ocorre porque estamos usando como sistema operacional do nosso projeto, o CentOs.

Após instalado o Ansible, faremos um teste, se está funcionando a conexão com o target1. Assim, usamos o ping para receber o resultado e o arquivo inventory.txt para passarmos o host, e senha da nossa VM ansible-target1

ansible target1 -m ping -i inventory.txt

Como resultado, podemos observar o resultado:

Agora, iremos criar o nosso Playbook, onde terão os passos que serão executadas na VM target1

Um outro ponto, como iremos precisar instalar o Docker na nossa VM, precisaremos passar um parâmetro no arquivo anterior, inventory.txt, para utilizarmos o "su" e assim, escalar privilégio do nosso usuário. Dessa maneira, poderemos instalar nosso Docker

Precisaremos criar 2 arquivos:

  • Um arquivo com a nossa secret que será encriptada, secret.yml
  • Outro arquivo, com a chave para descriptografar o primeiro arquivo. Esse segundo arquivo, chamaremos de vault.txt

Essas informações podem ser vistas aqui no meu Github:

Agora, iremos criar nosso Playbook, onde teremos módulos que são comandos específicos do Ansible e ajudam na criação do nosso arquivo. Como podemos ver no nosso Playbook, "yum", "command" ou "service" 😉

https://docs.ansible.com/ansible/2.9/modules/list_of_all_modules.html

Por fim, podemos observar o nosso Playbook, onde é importante reparar:

hosts: target1 become: yesvars_files: 
— secret

→ Usamos o nosso arquivo secret.yml que será lido no Playbook

→ O comando become é importante para podermos utilizar o sudo depois:

become_method: sudo

Aqui, podemos ler nosso Playbook:

Caso queiram rodar o arquivo, usaremos o comando:

ansible-playbook playbook-docker.yml -i inventory.txt --vault-password-file=vault.txt

Nosso output, podemos observar:

Assim, observamos o nosso container rodando no nosso target1

Espero que tenham gostado 💜

--

--

Michelle Mesquita
Michelle Mesquita

Written by Michelle Mesquita

DevSecOps & AppSec Engineer & Developer girl 👩‍💻

No responses yet