Configurar diferentes servidores y aplicaciones manualmente puede ser una gran molestia si hay muchos sistemas. Afortunadamente, el software y los marcos de automatización hacen el trabajo mucho más fácilmente.
Al usar estas aplicaciones, puede automatizar completamente el proceso de administración y configuración utilizando solo unas pocas líneas de código. Cuando se trata de la automatización de cualquier tipo, Ansible hace el truco!
Ansible es una herramienta con una gran cantidad de características. Hablar sobre todos ellos en una sola guía sería injusto, ya que cada una de estas características merece una guía.
Esta guía es un tutorial detallado sobre el módulo de comando Ansible. Repasaremos los conceptos básicos del módulo, junto con la sintaxis y las características, con la ayuda de algunos ejemplos.
¿Cuál es el módulo de comando ansible??
Como su nombre indica, el módulo de comando hace posible que un servidor/host remoto pueda ejecutar diferentes comandos. Estos usuarios remotos se denominan nodos en una red.
El módulo de comandos Ansible le permite ejecutar múltiples comandos en estos nodos. Estos nodos pueden existir como servidores independientes o partes de un grupo. Dicho esto, hay algunas limitaciones que debes saber sobre.
Limitaciones del módulo de comando
El módulo de comando se puede usar para ejecutar comandos de referencia simples para el shell. La única limitación es que no se puede usar para ejecutar comandos más complejos.
El módulo de comando ansible no puede ejecutar múltiples comandos en una sola declaración. Comandos usando los símbolos, |, etc., no son compatibles con el módulo de comando. En tales casos, el módulo de shell es definitivamente una mejor opción.
El módulo de comando ansible tiene algunos requisitos que deben cumplirse antes de poder usarlo. Estos requisitos están cubiertos en la siguiente sección de esta guía.
Prerrequisitos del módulo de comando ansible
Para usar el módulo de comando Ansible, necesita lo siguiente:
También le recomendamos que tenga algunos conocimientos básicos sobre cómo ejecutar comandos en la terminal para asegurarse de que sepa lo que está haciendo.
Una vez que se cumplen los requisitos previos, podemos proceder a aprender a usar el módulo de comando Ansible.
Usando el módulo de comando ansible
Si tiene alguna experiencia previa trabajando con scripts de shell, entonces usar el módulo de comando ansible debería ser un paseo por el parque. En caso de que no haya hecho eso, no se preocupe, ya que lo guiaremos sobre cómo usar el módulo de comando con la ayuda de diferentes ejemplos.
Lo primero que debe hacer es crear un archivo "ansible_hosts". Este archivo le permitirá agrupar sus hosts, lo que será útil para ejecutar comandos.
Para crear un grupo de hosts, escriba lo siguiente en el archivo "ansible_hosts"
$ Ansible TestServers --list -i ansible_hosts
Hosts (2):
En nuestro caso,
$ Ansible TestServers --list -i ansible_hosts
Hosts (2):
VM1
VM2
Estos hosts ahora deben agruparse bajo el alias "TestServers."Usemos este archivo como algunos ejemplos.
Uso del módulo de comando para encontrar el tiempo de ejecución del host
En este ejemplo, usaremos el módulo de comando ansible para averiguar cuánto tiempo se han ejecutado nuestros hosts.
Esto se puede hacer de dos formas. El primero es usar ad-hoc, una forma rápida de ejecutar funciones a través de un solo comando. El segundo es escribiendo un guión en el libro de jugadas.
Para encontrar el tiempo de ejecución usando ad-hoc, use el siguiente comando:
$ ansible testServers -m command -A tiempo de actividad -i ansible_hosts
Esto debería proporcionarle la salida en la siguiente sintaxis:
| Cambiado | RC = 0 >>
Para ejecutar el comando como un libro de jugadas, escriba lo siguiente:
Para ejecutar el comando como un libro de jugadas, escriba lo siguiente:
- nombre:
Hospedadores:
tareas:
- nombre:
Registrarse: EttimeOutput
Comando: "tiempo de actividad"
- depurar:
Var: ErttimeOutput.stdout_lines
En nuestro caso, el guión debe verse de la siguiente manera:
- Nombre: Encuentra cuánto tiempo han estado funcionando los hosts.
Hosts: TestServers
tareas:
- Nombre: Comando para encontrar el tiempo de actividad usando el módulo de comando
Registrarse: EttimeOutput
Comando: "tiempo de actividad"
- depurar:
Var: ErttimeOutput.stdout_lines
Con eso, puede ejecutar este libro de jugadas ejecutando el siguiente comando en el terminal de Linux:
Ansible-Playbook Testbook.YML
La salida debe ser similar a la del comando ad-hoc.
Uso del módulo de comando para encontrar el uso del disco
El comando $ DF -H se usa para encontrar el uso de disco en un sistema. El mismo comando puede integrarse con el módulo de comando Ansible para encontrar el uso de disco de sus hosts.
Para encontrar el uso del disco con AD-HOC, use este comando:
$ ansible testServers -m command -a "df -h" -i ansible_hosts
Para encontrar el uso del disco usando el libro de jugadas, ejecute el siguiente script:
Nombre: Uso de disco de los servidores
Hosts: TestServers
tareas:
- Nombre: ejecute el comando $ df -h.
Registrarse: DFOUT
Comando: "DF -H"
- depurar:
var: dfout.stdout_lines
Uso del módulo de comando para reiniciar el servidor
El módulo de comando ansible se puede usar para reiniciar un solo servidor. El parámetro -limit se usa para limitar esta ejecución.
Para ejecutar el comando usando ad-hoc, escriba lo siguiente,
$ ansible testServers -m command -a "httpd -k reiniciar" -i ansible_hosts -b --limit vm1
Para ejecutar el comando usando el libro de playbook, ejecute el siguiente script:
---
- Nombre: Reinicie el servidor web
Hosts: TestServers
tareas:
- Nombre: reiniciarWebServer
Registrarse: httpdresout
convertirse en: si
Comando: "httpd -k reiniciar"
Cuándo: ansible_hostname == "vm1"
- depurar:
Var: httpdresout.stdout_lines
Esto debería reiniciar su servidor. Debería ser evidente que VM2 ha sido omitido.
Además de los ejemplos como se mencionó anteriormente, hay muchos comandos que se pueden ejecutar utilizando el módulo de comando Ansible. La documentación de estos comandos y opciones se puede encontrar en la documentación oficial de Ansible en línea.
Conclusión
Esperamos que esta guía lo ayude a aprender sobre el módulo de comando Ansible. Cubrimos los conceptos básicos del módulo, sus requisitos previos y algunos ejemplos de cómo usarlo. Con esto, esperamos que tenga una experiencia agradable trabajando en Ansible.