Ansible ? Sério ? Eu na Infra com DevOPS

Ansible ? Sério ? Eu na Infra com DevOPS

Falei no outro artigo sobre Vagrant, uma introdução, da ferramenta, então agora vou falar sobre o Ansible e seu poder.

Ansible é uma ferramenta para agilizar comandos repetitivos, quem nunca de infra teve que percorrer 50 máquinas, para aplicar o mesmo comando ?

Quem já passou por isso, deve se lembrar da expressão de Shell abaixo:

for IP in $(seq 1 10);do ssh root@192.168.1.${I} 'chmod 644 /var/log/auth.log' ; done

É, esse comando acima está bem simples em comparação ao que passamos no dia-a-dia como SysAdmin Linux, mas se a gente já conhecesse o Ansible, tudo isso poderia ser substituído com a expressão abaixo.

ansible -a 'chmod 644 /var/log/auth.log' all

Primeira atenção fica que no Ansible não precisamos de Agent, basta termos o que chamamos no GNU/Linux de chave de confiança.

Quem já usou SSH sabe do que estou falando. ( Em minhas analogias chamo isso de Chave e Fechadura ) Mas o termo certo é "Par de Chaves ou Chave de confiança"

Através desse processo de confiança, o Ansible, tendo a Chave Privada, consegue acessar todos os Hosts que tiverem a chave pública ( Fechadura =P )

Detalhe no comando citado anteriormente, é que a palavra all, pode ser substituída por um dicionário, que pode ser criado a qualquer momento no arquivo

#vim /etc/ansible/hosts

Esse arquivo teria que ter uma palavra chave e a sequencia de IPS

[servidores]
192.168.1.[1:10]


O Ansible é feito em Python utilizando a API Paramiko, para faciliar o SSH em diversas máquinas, resumindo a opera, ele é o Loop em ShellScript que fazíamos antes, só que agora com a facilidade do que chamamos de PlayBook.

Isso mesmo, além do poder do parâmetro -a 'COMANDO' que facilita muito nossa vida, podemos utilizar o Ansible para realizar roteiros pré-prontos e aplicar em diversos servidores, sendo assim uma excelente ferramenta para quem é de Infra, Desenvolvimento ou a galera que é adepta da Cultura DevOPS.

Vamos pegar o mesmo exemplo que dei neste artigo e converter ele para um PlayBook, sendo assim teríamos um arquivo no caminho

#vim /etc/ansible/playbooks/acesso.yml

Dentro desse arquivo que vem na extensão '.yml' que significa ( YAML Is not Markup Language ) ou seja, esse formato de arquivo é considerado um documento.

Lembra muito XML, bora ver o conteúdo e ele em execução:



#ansible-playbook /etc/ansbile/playbooks/acessos.yml

Olha que interessante, consegui fazer as modificações apenas convocando o playbook, e o mais interessante, no parâmetro hosts, eu posso dizer quais os servidores eu quero aplicar.

Claro que ferramenta serve para muitas coisas, eu quiz aqui apenas dar uma pequena demonstração e realizar o mesmo processo, em métodos diferentes.

Espero que tenham gostado desse breve artigo, mostrando um pouco sobre a ferramenta, um forte abraço e sucesso a todos.

Elvis Suffi Pompeu

Site Reliability Engineer Specialist | Porto Seguro

7 a

Ficou muito bom Antonio Thomacelli Gomes, só vale pontuar que o YAML pesa FORTE na identação de linhas, caso contrário a rapaziada vai sofrer muito debugando.

Entre para ver ou adicionar um comentário

Outras pessoas também visualizaram

Conferir tópicos