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:
- https://wiredcraft.com/blog/getting-started-with-ansible-in-5-minutes
- https://www.ansible.com/resources/videos/quick-start-video
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'