Ansible
Contenido
Instalación de Ansible
En Centos ha sido tan fácil como instalar el repositorio de EPEL e instalar el paquete de ansible.
Inventario
Un ejemplo de fichero con mis máquinas en Vagrant sería:
[local] localhost ansible_connection=local [vagrant] test1 ansible_host=192.168.5.211 test2 ansible_host=192.168.5.212 [vagrant:vars] ansible_user=vagrant ansible_ssh_pass=vagrant
Una máquina puede estar en un grupo o en varios y tambien se pueden crear hijos de un grupo, lo que heredaría sus valores por defecto
Los valores por defecto de un grupo se definen con el [<grupo>:vars]
También se puede usar un fichero con la clave RSA privada para conectarse a un servidor, tendrímos que poner el siguiente parámetro:
ansible_ssh_private_key_file = <path>
Ansible con inventarios dinámicos
Si se administran muchos hosts con Ansible, mantener un fichero de hosts quizás no sea lo más óptimo, y por eso existen los inventarios dinámicos.
Cobbler inicialmente es un proyecto separado de Ansible pero que ha sido recuperado por el equipo de Ansible. Se puede ver este productio como una especie de CMDB ligera, y existe este script en Ansible que conecta el inventario con cobbler.
También hay conectores contra AWS y muchos más
Ejecuciońes Ad-Hoc
Sería algo así como hacer ejecuciones de comandos en concreto en una serie de máquinas. Es o más básico de Ansible.
# ansible -i hosts vagrant -a "cat /etc/hosts" test1 | SUCCESS | rc=0 >> 127.0.0.1 test1.vag.ardemans.com test1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 test2 | SUCCESS | rc=0 >> 127.0.0.1 test2.vag.ardemans.com test2 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6