Ansible : Instalação e configuração no RHEL 7

Neste post será apresentado a ferramenta Ansible.

Ansible é uma ferramenta poderosa de automação , administração e deploy de aplicações em diversos hosts utilizando apenas Python (2.4 pra cima) e SSH .

Fazendo um breve comparação com o Puppet , o Ansible é uma ferramenta mais simples e prática de se utilizar sem a necessidade de utilizar agentes.

1) Cenário :

10.0.0.30 – ANSIBLE Server
10.0.0.31 – Server 1

2) Requisitos :

Em nosso exemplo estou utilizando o CentOS 7 , para isso vou adicionar o repositório epel  :

yum install epel-release -y 

3) Instalando o Ansible :

yum install ansible -y 

Após a instalação confirme a versão instalada :

Captura de Tela 2016-03-30 às 23.08.07

4) Distribuindo chaves públicas :

Execução do comando ssh-keygen

Captura de Tela 2016-03-30 às 23.15.42

Execução do comando ssh-copy-id para distribuir a chave pública

Captura de Tela 2016-03-30 às 23.17.42

5) Definindo os servidores no Ansible :

Dentro do arquivos /etc/ansible/hosts podemos definir uma “inventory” por grupo desejado , podemos separar por grupo web , db e application server por exemplo.

Captura de Tela 2016-03-30 às 23.58.27

No lab será definido como fajlinux

vim /etc/ansible/hosts

Captura de Tela 2016-03-30 às 23.35.45

Obs : Estamos criando uma segunda entrada para apresentar um teste ok e um teste falho .

6) Rodando comandos com o ansible :

Vou executar um teste de ping para o grupo fajlinux

ansible -v  -m ping fajlinux

Neste teste podemos ver que houve tentativa de ping para a outra entrada porém houve falha , enquanto para o server-01 o teste de ping teve sucesso.

Captura de Tela 2016-03-30 às 23.38.38

Checando o uptime dos servidores

ansible -v  -m ping fajlinux

Captura de Tela 2016-03-30 às 23.43.03

Criando usuários

ansible -m command -a "useradd user01" 'fajlinux'
ansible -m command -a "grep user01 /etc/passwd" 'fajlinux'

Captura de Tela 2016-03-30 às 23.45.42

Com estes exemplos podemos ver que com imaginação podemos manter o versionamento de um datacenter de maneira simples e eficaz .

Nos próximos exemplos apresentarei como criar tarefas com mais servidores com esta solução.

Extras :

Para poder distribuir chaves pública para uma lista de hosts , podemos utilizar o post que criei como distribuir chaves pela rede .

http://fajlinux.com.br/scripts/shell-script-distribuindo-chaves-publicas-para-automacao-de-tarefas-via-ssh/

Referências :

http://docs.ansible.com/