Ansible

Como Utilizar

Servidor Ansible (Runner/Manager)

  • Instalar o Ansible
  • Criar a chave de SSH
  • Configurar os grupos em /etc/ansible/hosts
[grupo]
hostname1
hostname2:2222
hostname3
some_host         ansible_port=2222     ansible_user=manager
aws_host          ansible_ssh_private_key_file=/home/example/.ssh/aws.pem
jumper              ansible_port=5555 ansible_host=192.0.2.50

Cliente (Servidores Clientes)

  • Instalar o Ansible
  • Habilitar o SSH para o servidor Ansible chegar
  • Copiar a chave para o root
  • Cuidado com o SSH root com senha (apenas chave)

Comandos no Servidor

# ansible server_or_group -m module_name -a arguments
# ansible all -m ping 
# ansible all -m shell -a "df -lh"

Variáveis de Grupos

Você pode definir variáveis de grupo em /etc/ansible/group_vars/<nome_grupo> ou diretamente no arquivo hosts.

[grupo:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com

ou

---
ntp_server: acme.example.org
database_server: storage.example.org

Subgrupos

Você pode criar subgrupos em /etc/ansible/group_vars/<nome_grupo>.

[web]
hostA

[db]
hostB

[ubuntu:children]
web

Mais informações em http://docs.ansible.com/ansible/intro_inventory.html.

Instalar Ansible

Você pode instalar o Ansible usando os seguintes comandos.

1  yum search ansible
2  yum install centos-release-ansible
3  yum update -y
4  yum install -y epel-release
5  yum install -y ansible

Adicionar Hosts no Arquivo hosts (inventory)

Você pode adicionar hosts em /etc/ansible/hosts.

#hosts
www1 ansible_host=172.20.0.25
mysql ansible_host=172.20.0.26

[webservers]
www1

[mysqlserver]
mysql

Testar

Você pode testar o Ansible usando os seguintes comandos.

$ ansible -i hosts -m ping www1 / webservers
$ ansible -i hosts all -m ping -u root -k -v

Arquivo YAML para Playbook

Você pode criar um arquivo YAML para playbook em /etc/ansible/playbooks/<nome_playbook>.yml.

---
- name: Instalar httpd
  hosts: webservers
  become: yes
  tasks:
    - name: Instalar httpd
      yum: name=httpd state=latest

$ ansible-playbook -i hosts install-httpd.yml webservers

Referências:

Windows

Você pode usar o Ansible no Windows usando os seguintes comandos.

[sec]

143.106.73.151  ansible_connection=ssh ansible_shell_type=cmd ansible_python_interpreter=C:\Python27 ansible_user=administrador

Testando:

ansible sec -m win_ping --extra-vars ansible_ssh_pass='senha1234'
ansible sec -m win_shell -a 'date' --extra-vars ansible_ssh_pass='senha1234'