Sumérjase en los controles ad hoc de Ansible

La automatización juega un papel vital en la vida diaria de un administrador de sistemas o administrador de DevOps; la aplicación de parches, la instalación, la gestión de componentes, la automatización de dispositivos de red y la gestión de contenedores son tareas que puede manejar la automatización. Debido al comportamiento secuencial de los scripts, muchos administradores de sistemas no han visto la automatización como una herramienta prometedora. Ansible, como herramienta de automatización que se ejecuta en paralelo, parece estar cambiando esta tendencia y siendo ampliamente utilizada.

Ansible utiliza comandos ad hoc y playbooks para lograr la automatización. Los comandos ad hoc son en su mayoría comandos lineales simples que se pueden ejecutar desde los controladores. Los comandos ad hoc hacen que Ansible sea útil incluso cuando un administrador del sistema necesita realizar una actividad única.

Este artículo examina diferentes aspectos y opciones disponibles en los comandos ad hoc de Ansible, como --limit, -B, -a, -m, y -b.

Consideración: Los detalles del inventario se mencionan en el myinventory archivo, como se muestra aquí:

cat myinventory
[app]
localhost
172.6.7.8
172.6.7.80

[multi]
172.6.7.4
172.6.7.10
172.6.7.8

En esta línea de código se incluyen algunos ejemplos de comandos ad hoc:

$ ansible app -b -m yum -a "name=MySQL-python state=present"

Estos comandos instalan un MySQL-python paquete en el grupo de aplicaciones. el -b opción realiza una operación con become. Puede proporcionar el nombre de usuario usando –become-user. el -m La opción especifica módulos como: copy, user, yum, y más. el -a opción es un atributo de un módulo específico.

Aquí hay otro ejemplo, que solo se ejecuta en la dirección IP especificada (172.6.7.10):

$ ansible app -b -a "systemctl status ntpd" --limit "172.6.7.10"

el --limit La opción limita los hosts seleccionados a una plantilla diferente, y también puede usar comodines como *, !, y & (como se muestra en los ejemplos a continuación).

El primer comando de muestra a continuación ejecuta el comando ad hoc en cualquier nodo que termine con un .4 Dirección IP. El segundo ejemplo se está ejecutando en un grupo de aplicaciones en la IP 172.6.7.80. El último ejemplo se ejecuta en cualquier máquina de ambos grupos. En este caso, 172.6.7.8 está presente en ambos grupos.

$ ansible app -b -a "systemctl status ntpd" --limit "*.4"
$ ansible app -b -a "systemctl status ntpd" --limit "app:!172.6.7.80”
$ ansible app -b -a "systemctl status ntpd" --limit "app:&multi”

Los comandos ad hoc también se pueden utilizar con el user, stat, copy, y file módulos:

$ ansible app -s -m user -a "name=admin state=present"
$ ansible multi -m stat -a "path=/etc/environment"
$ ansible multi -m copy -a "src=/etc/hosts dest=/tmp/hosts"
$ ansible multi -m file -a "dest=/tmp/test mode=644 state=directory"

En algunos casos, un comando ad hoc de Ansible puede tardar mucho tiempo en ejecutarse porque tiene que esperar mucho tiempo. Utilizando el -B opción, puede programar fácilmente los pedidos en segundo plano:

$ ansible multi -b -B 3600 -a "yum -y update"

El registro de hosts administrados se logra fácilmente usando el tail/tailf pedidos :

$ ansible multi -b -a "tail /var/log/messages"

Envoltura

Usando comandos ad hoc, un administrador del sistema puede verificar el estado deseado de una tarea en particular antes y después de la ejecución. Las opciones de este artículo pueden facilitarle la vida al administrar la automatización de Ansible.

Artículos de interés

Subir