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 :
1 | yum install epel-release -y |
3) Instalando o Ansible :
1 | yum install ansible -y |
Após a instalação confirme a versão instalada :
4) Distribuindo chaves públicas :
Execução do comando ssh-keygen
Execução do comando ssh-copy-id para distribuir a chave pública
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.
No lab será definido como fajlinux
vim /etc/ansible/hosts
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
1 | 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.
Checando o uptime dos servidores
1 | ansible - v -m ping fajlinux |
Criando usuários
1 | ansible -m command -a "useradd user01" 'fajlinux' |
2 | ansible -m command -a "grep user01 /etc/passwd" 'fajlinux' |
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 .
Referências :