Ansible - Automatizando o Data Center

Este documento foi criado com a intenção de ser um tutorial Quick-Start. Para uma referência completa do Ansible, exemplos e boas práticas, visite seu site oficial.

[ Hits: 42.897 ]

Por: Renato Santos em 24/02/2014


ansible_hosts / arquivo Ansible Host



Senhas ansible_hosts

Particularmente, eu prefiro o uso do arquivo ansible_hosts com usuário e senhas. Mas, se quiseres usar por chave mesmo, eu recomendo o seguinte: se a quantidade de servidores for muito grande (como é o caso de vocês), coloquem a senha no ansible_hosts, como no exemplo que mandei, rodem os comandos abaixo:

1. Enviando sua chave somente para o servidor nova:

ansible all --limit nova -m copy -a 'src=~/.ssh/id_rsa.pub dest=~/minhachave.pub'

2. Verifique se o servidor realmente tem o diretório .ssh com a chave privada:

ansible all --limit nova -m shell -a 'ls .ssh -al'
nova | FAILED | rc=2 >>
ls: cannot access .ssh: No such file or directory
Nesse caso, não tem. Então, vou mandar criar remotamente a chave:

ansible all --limit nova -m shell -a "ssh-keygen -P 'f0rm1g@' -f /home/operador/.ssh/id_rsa"

2. Agora sim, você pode adicionar sua chave copiada no passo 1 para o servidor:

ansible all --limit nova -m shell -a "cat minhachave.pub >>.ssh/authorized_keys"

3. Garantindo que o arquivo authorized_keys esteja com as permissões corretas:

ansible all --limit nova -m shell -a "chmod 644 .ssh/authorized_keys"

Nesse ponto, você já deveria conseguir fazer SSH para o servidor sem precisar de senha. Agora, retire as senhas do ansible_hosts.

Ou, então, deixe apenas uma pessoa com o arquivo com senhas, responsável por enviar as chaves para os servidores e os outros conectam apenas por chave.

P.S.: lembre-se que, se o arquivo ansible_hosts está sem as senhas, será preciso adicionar "--ask-pass" nas chamadas do Ansible, para que ele peça a senha.

Criando arquivo Ansible Host

Para criação do arquivo ansible_host, é necessário editar o arquivo:

Obs.: coloquei as barras como comentários no arquivo.

[centos]  // Nome do Grupo de Host
34 ansible_ssh_host=172.25.137.34 ansible_ssh_user=root ansible_ssh_pass=xxxx23
101 ansible_ssh_host=172.25.137.101 ansible_ssh_user=root ansible_ssh_pass=xxxx23
129 ansible_ssh_host=172.25.137.129 ansible_ssh_user=root ansible_ssh_pass=xxxx23
132 ansible_ssh_host=172.25.137.132 ansible_ssh_user=root ansible_ssh_pass=xxxx23

Na ordem de leitura e composta de:
  1. Nome do host.
  2. IP ou DNS de destino onde será executado o procedimento.
  3. Usuário que irá conectar ao host.
  4. Senha de acesso ao host.

Referências

Documentação:
Agradeço ao meu colega Delberto, que me apresentou essa bela ferramenta e passou seu conhecimento e aprendizado.

Página anterior    

Páginas do artigo
   1. Introdução
   2. Instalação / Configuração inicial
   3. Módulo / Playbooks
   4. ansible_hosts / arquivo Ansible Host
Outros artigos deste autor

Monitorando Banco de Dados Postgres com ZABBIX

Ansible - Instalação em massa Agent Zabbix

Leitura recomendada

Instalando o Debian em uma máquina virtual (VirtualBox)

Asterisk não é um Sip Proxy

Jogos via Internet em 2 minutos com Hamachi

OTRS no Fedora Server 21

Empacotamento e instalação do MPV Player no Linux

  
Comentários
[1] Comentário enviado por eduinfo10 em 24/02/2014 - 09:05h

Bom dia amigo,

Artigo bem completo, mas não ficou claro tudo que este software faz. Podia ter tirado uns prints e explicado melhor, não ?

[2] Comentário enviado por danniel-lara em 24/02/2014 - 11:02h

ele é similar ao puppet ?

[3] Comentário enviado por renato473 em 24/02/2014 - 22:22h


[2] Comentário enviado por danniel-lara em 24/02/2014 - 11:02h:

ele é similar ao puppet ?


Sim e similar , somente via comando a ferramenta e livre , agora com a dashboard web ela ja se torna paga a vantagem e que pode utilizar python e shell script entre outras linguagem , mais sempre obedecendo a documentação.

[4] Comentário enviado por renato473 em 24/02/2014 - 22:26h


[1] Comentário enviado por eduinfo10 em 24/02/2014 - 09:05h:

Bom dia amigo,

Artigo bem completo, mas não ficou claro tudo que este software faz. Podia ter tirado uns prints e explicado melhor, não ?


Vamos dizer que vc tenha que alterar em 200 servidores as senhas de acesso de root e levasse cerca de 7 minutos para fazer o procedimento de loga, alterar a senha e deslogar em 200 servidores não seria algo chato e demorado e ainda com princípios de erro ? , e que tal utilizar uma forma que ira levar menos tempos e será mais eficaz ? , não cheguei a tirar print pois onde trabalho cheguei a fazer os LAB'S , questão de print pode ver pela forma da documentação e feita pela própria ansible, ele funciona em modo terminal que e versão free mais que existe a versão web que e paga.

[5] Comentário enviado por luzfcb em 25/02/2014 - 12:41h

Renato, uma opção interessante que apareceu esses tempos, é o https://asciinema.org/
Basicamente um aplicativo escrito em Python que grava a execução de comandos no terminal.
Seria legal, você incluir no tutorial, talvez a gravação de tela do Ansible funcionando


Para instalar:

sudo easy_install asciinema

ou

sudo pip install --upgrade asciinema

Você pode obter o código fonte dele aqui:

https://github.com/sickill/asciinema

[6] Comentário enviado por renato473 em 25/02/2014 - 22:25h

Desconhecia esta ferramenta luzfcb, obrigado pela dica, talvez criei outro tutorial , sendo ansible na pratica, já contendo essa dica de qual nos passou.


[5] Comentário enviado por luzfcb em 25/02/2014 - 12:41h:

Renato, uma opção interessante que apareceu esses tempos, é o https://asciinema.org/
Basicamente um aplicativo escrito em Python que grava a execução de comandos no terminal.
Seria legal, você incluir no tutorial, talvez a gravação de tela do Ansible funcionando


Para instalar:

sudo easy_install asciinema

ou

sudo pip install --upgrade asciinema

Você pode obter o código fonte dele aqui:

https://github.com/sickill/asciinema



[7] Comentário enviado por diegoascanio em 28/02/2014 - 11:05h

bom artigo para o futuro do sysadmin

devops agora é o que há!

[8] Comentário enviado por Tacioandrade em 12/03/2014 - 01:07h

Muito interessante esse programa principalmente por ao contrário de seus "concorrentes" não precisa de um agente nas slaves, uma pena que por agora não vou poder implementar nada de novo no datacenter da empresa por o novo administrador ta dando uma de do contra para novidades (até mesmo para ambientes de homologação)....

[9] Comentário enviado por renato473 em 12/03/2014 - 01:12h

Olá Tacio andrade ,

Uma forma e demonstrar a ferramenta os pós e contra, dizer a ele que quanto tempo demora para subir um servidor e tipo mostrar como iria funcionar um plano de contenção se utilizasse ferramenta e procedimentos automatizados, onde trabalhei eu e equipe documentávamos tudo mesmo.

[10] Comentário enviado por Tacioandrade em 12/03/2014 - 01:19h


[9] Comentário enviado por renato473 em 12/03/2014 - 01:12h:

Olá Tacio andrade ,

Uma forma e demonstrar a ferramenta os pós e contra, dizer a ele que quanto tempo demora para subir um servidor e tipo mostrar como iria funcionar um plano de contenção se utilizasse ferramenta e procedimentos automatizados, onde trabalhei eu e equipe documentávamos tudo mesmo.


Pois é, no nosso caso o buraco é um pouco mais em baixo, principalmente por a maior parte dos servidores não serem de nossa incubência, nós só montamos as VMs e passamos para o setor, empresa, etc que requisitou. Porem já fiz a indicação para alguns amigos aqui agora que mostraram muito interesse e pretendo usar em empresas onde presto consultoria também, uma pena que no ambiente que mais ganharia por enquanto pelo menos não rola.

[11] Comentário enviado por davirussi em 22/08/2014 - 13:11h

Pergunta, por acaso tem como automatizar instalação de impressora? Eu gostaria de automatizar a sintalação do hp-setup mas durante a instalação o script faz multiplas perguntas. Teria como automatizar isso pelo ansible? Obrigado

[12] Comentário enviado por renato473 em 22/08/2014 - 13:25h

Sim, e possível realizar isto , mais será necessário alterar seu script , pois no shell script podemos confirmar.

usando -y ou -n.


[11] Comentário enviado por davirussi em 22/08/2014 - 13:11h:

Pergunta, por acaso tem como automatizar instalação de impressora? Eu gostaria de automatizar a sintalação do hp-setup mas durante a instalação o script faz multiplas perguntas. Teria como automatizar isso pelo ansible? Obrigado




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts