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: 40.215 ]

Por: Renato Santos em 24/02/2014


Instalação / Configuração inicial



Instalação

Convenções: para simplificar, chamaremos a máquina que gerencia as outras de Master e as máquinas gerenciadas, de Slaves. Para esse tutorial, usaremos o Ubuntu 12.04 LTS.

Como foi falado anteriormente, o setup do Ansible é muito simples. Ele pede um mínimo de pacotes no Master, todos plenamente disponíveis nos repositórios da própria distro.

Assim, o setup do tutorial compõe-se de: duas VMs Ubuntu 12.04: uma Master e outra Slave. Mas, nada impede de você usar seu Desktop como Master e apenas uma VM como Slave.

Pré-requisitos gerais:
  • Master e Slave conseguem conectar uma à outra via: ssh operador@<ip>
  • Master e Slave podem instalar normalmente pacotes via apt-get.
  • O usuário padrão na Master e Slave é operador. E ele pode tem permissão de sudo su -.

Configuração do Master:

Logue no Master, com o usuário operador. Instale os seguintes pacotes:

sudo apt-get install python-paramiko python-yaml python-jinja2 sshpass git

Instalação do Ansible:

Crie um diretório que conterá, tanto o Ansible, quando a infraestrutura de gerenciamento:

mkdir ~/manager
$ mkdir -p ~/manager/{hosts,books}


Agora, instale o Ansible:

cd ~/manager
$ git clone https://github.com/ansible/ansible.git


Aguarde o download do Ansible via Git.

Configuração inicial

Nesse momento, o Ansible está instalado em ~/manager/ansible. Para ativá-lo, execute:

source ~/manager/ansible/hacking/env-setup

Digitando ansible, sem parâmetros, já deveria trazer o Help dele. É recomendável colocar em seu ~/.bashrc, para facilitar, o comando:

source ~/manager/ansible/hacking/env-setup

O próximo passo, é a criação de um arquivo de hosts. Esse arquivo lista os seus servidores e os parâmetros de acesso. Então, crie o arquivo usando o editor de textos de sua preferência, como no exemplo abaixo:

vim ~/manager/hosts/ansible_hosts

Como exemplo, criaremos um grupo chamado AppServers com apenas a Slave de testes. O conteúdo do arquivo está listado abaixo (substitua de acordo com seu ambiente). No exemplo abaixo, temos uma VM VirtualBox rodando na mesma máquina, com a porta SSH/22 "nateada" para 51222.

[AppServers]
127.0.0.1 ansible_ssh_port=51222 ansible_ssh_user=operador ansible_ssh_pass=opersenha01

O próximo passo, é exportar a variável ANSIBLE_HOSTS. Ela aponta para o o arquivo ansible_hosts que contém os Slaves que você quer administrar.

Em nosso caso, exportaremos assim:

export ANSIBLE_HOSTS=~/manager/hosts/ansible_hosts

Obs.: recomendo colocar a linha acima também em seu .bashrc.

Para testar a configuração:

ansible all -m ping

Deveria responder algo assim:
$ ansible all -m ping
127.0.0.1 | success >> {
    "changed": false,
    "ping": "pong"
}

Se der erro, revise o seguintes passos:

1. Usuário/senha do arquivo ansible_hosts.
2. Pode ser necessário instalar o pacote python-simplejson na máquina Slave:

# apt-get install python-simplejson

Outros exemplos, usando módulos:

ansible all -m shell -a 'touch ~/teste.txt'
$ ansible all -m shell -a 'date'
$ ansible all -m file -a 'path=~/teste.txt owner=operador group=operador mode=0664'


Página anterior     Próxima página

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 e usando o GNUstep no Linux

Aprendendo LaTeX com o Texmaker

eDonkey para Linux

Nagios 4 com Check_MK 1.2.5i3 no CentOS 6.5 x64

Seu Slackware atualizado com SWARET

  
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

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts