Un tutorial de Ansible
January 29, 2016
Un tutorial de Ansible
Basado en este post
Ansible es una herramienta de configuración automática de servidores Agent Free que funciona sobre SSH
Considero que el principal atractivo de Ansible es Agent Free, que quiero decir con esto: que no necesito instalar ruby y un cliente en el servidor que quiero aprovisionar antes de aprovisionar, como con Chef o Puppet, en lugar de eso, solo necesita un python 2.6+ y un servidor ssh, lo que viene casi que por defecto instalado en las imágenes predeterminadas que nos ofrecen nuestros IaaS favoritos.
Instalando Ansible
Ubuntu
sudo apt-add-repository -y ppa:ansible/ansible
sudo apt-get update
sudo apt-get install -y ansible
Mac
pip install ansible
Host
Aclaremos algo: esto del aprovisionamiento automático solo es divertido cuando son muchos equipos, o no?
Nuestro archivo de configuración de host estará compuesto por una lista de ips o nombres de dominio identificables por nuestra máquina (1 por línea), que de ahora en adelante llamaremos maestro.
Podemos crear grupos de hosts colocando líneas que indiquen el nombre del grupo
mail.example.com
[webservers]
foo.example.com
bar.example.com
[dbservers]
one.example.com
two.example.com
three.example.com
``` [aprende mas de Inventories](http://docs.ansible.com/ansible/intro_inventory.html)
###Comandos AdHoc
Como cualquier herramienta medianamente decente, tenemos nuestro API por consola.
Prueba estos comandos
ansible all -m shell -a “ifconfig” ansible all -m ping ansible webservers -s -m apt -a “pkg=apache2 state=installed update_cache=true”
>El primer parametro especifica el grupo
>-m Especifica el módulo [módulos](http://docs.ansible.com/ansible/list_of_all_modules.html)
>-s Los comando se ejecutan como superusuario
>-k Pide la contraseña
>-i Especifica un archivo de host
>--private-key Especifica el archivo con la llave publica para la conexión
>-a Argumentos para el módulo