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'