Usando ansible para tareas rápidas de administración…

A veces recibimos llamadas de un tercero solicitando ayuda con sus servidores, ya sea que el servicio este caido, que el rendimiento no sea el esperado, o cualquier otro tema similar.

Podemos encontrarnos con esquemas de múltiples servidores y sin una manera rapido de hacer cambios, mejor dicho, sin un sistema de manejo de configuración implementado.

En estos casos lo mejor es echar mano de ansible http://www.ansible.com.

La ventaja de ansible sobre los otros CM (configuration management) es que no necesita un software cliente para funcionar, todo lo realiza sobre ssh.

Vamos a suponer que tenemos un cluster de php/nginx y que tenemos acceso via ssh a todos los nodos usando llaves ssh para evitar que nos pida password.

Creamos un archivo llamados ‘hosts’

tardis:~ JD$ cat hosts 
[web]
www01
www02
www03
www04
www06
www07
www08
www09
www10

Este archivo contiene los nombres de las máquinas que queremos administrar, están agrupadas en un grupo llamado web

vamos a ejecutar un comando simple para verificar si tenemos conexión

tardis:~ JD$  ansible web -i hosts  -m  command -a 'w'
www03 | SUCCESS | rc=0 >>
 10:51:05 up 35 days, 17:05,  1 user,  load average: 0.43, 0.31, 0.25
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.10   10:51    0.00s  0.08s  0.00s w

www01 | SUCCESS | rc=0 >>
 10:52:13 up 35 days, 17:06,  1 user,  load average: 0.19, 0.24, 0.25
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.10   10:52    0.00s  0.07s  0.00s w

www06 | SUCCESS | rc=0 >>
 10:52:13 up 35 days, 17:06,  1 user,  load average: 0.28, 0.23, 0.23
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.10   10:52    0.00s  0.09s  0.00s w

www04 | SUCCESS | rc=0 >>
 10:51:05 up 35 days, 17:05,  1 user,  load average: 0.16, 0.19, 0.22
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.10   10:51    0.00s  0.07s  0.00s w

www02 | SUCCESS | rc=0 >>
 10:52:16 up 35 days, 22:41,  1 user,  load average: 0.29, 0.27, 0.26
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.10   10:52    0.00s  0.07s  0.00s w

www07 | SUCCESS | rc=0 >>
 10:51:08 up 35 days, 17:04,  1 user,  load average: 0.29, 0.26, 0.24
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.10   10:51    0.00s  0.09s  0.00s w

www09 | SUCCESS | rc=0 >>
 10:52:17 up 35 days, 22:41,  1 user,  load average: 0.20, 0.19, 0.22
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.10   10:52    0.00s  0.08s  0.00s w

www08 | SUCCESS | rc=0 >>
 10:51:08 up 35 days, 17:04,  1 user,  load average: 0.39, 0.31, 0.25
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.10   10:51    0.00s  0.09s  0.00s w

www10 | SUCCESS | rc=0 >>
 10:51:07 up 35 days, 17:04,  1 user,  load average: 0.19, 0.23, 0.23
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.10   10:51    0.00s  0.08s  0.00s w

Como veran, pasamos el comando ‘w’ a todas las maquinas, lo que nos dio rápidamente una idea de como estaba la carga en ellas, igualmente podemos pasar otro comando que necesitemos y se ejecutara de forma paralela en las máquinas.

Saludos

Deja tu comentario

%d bloggers like this: