749
Ansible es una popular herramienta de automatización de código abierto que se ha convertido en una solución poderosa para administrar y automatizar la administración de la configuración en la empresa. En esta guía, profundizaremos en uno de sus módulos esenciales, el módulo Ansible Ping, y aprenderemos cómo se usa para garantizar una comunicación adecuada entre Ansible y los sistemas de destino.
¿Qué es Ansible?
Ansible es una herramienta de automatización de código abierto diseñada para ayudar a los administradores de sistemas a administrar la configuración de múltiples sistemas y automatizar la implementación de aplicaciones, la replicación dentro del sitio y otras tareas de TI. Los comandos de Ansible están construidos en Python.
Construido sobre una base simple pero poderosa, Ansible aprovecha el poder del lenguaje YAML, lo que permite a los usuarios crear libros de jugadas legibles por humanos y fácilmente comprensibles para definir y ejecutar tareas en toda la infraestructura de TI.
Al usar los módulos de Ansible, los administradores tienen muchas características y capacidades para interactuar con su infraestructura usando una sintaxis de comando simple de Ansible para apuntar a hosts remotos. La conexión a su servidor remoto se puede realizar a través de SSH o WinRM.
¿Qué hace el módulo Ansible Ping?
A módulo de prueba trivialeste módulo siempre devuelve pong en contacto exitoso. El módulo Ping de Ansible es una herramienta simple pero esencial que se utiliza para probar la conectividad entre el nodo de control de Ansible y los nodos administrados en la red. Cuando muchos piensan en ping, piensan en ping ICMP. Sin embargo, el módulo de ping de Ansible es un poco diferente.
Nota. Consulte nuestra publicación Primeros pasos con el escritorio Rancher.
El ping de Ansible funciona enviando una solicitud de «ping» básica al nodo de destino. El módulo de Python utilizable confirma la disponibilidad y la capacidad de respuesta del nodo en cuestión, lo que garantiza que los libros de jugadas de Ansible se puedan ejecutar correctamente en un host remoto. En lugar de una simple prueba de conectividad, el módulo de ping de Ansible determina si Ansible tiene todo lo que necesita para ejecutar todas las tareas definidas en el libro de jugadas.
Nota. Consulte nuestro tutorial sobre cómo eliminar el puerto COM en uso.
A continuación, utilizamos el módulo de «ping» especializado para las conexiones de Ansible Windows: ganar_ping.
Desde su máquina o servidor controlador de Ansible, ejecuta el módulo de ping de Ansible y, una vez que se realiza correctamente, puede estar seguro de que sus tareas se ejecutarán correctamente.
A continuación, se muestra un ejemplo de un mensaje «pong» de éxito en respuesta al comando «ping».
Características del módulo de ping de Ansible
El módulo de ping de Ansible está diseñado teniendo en cuenta la simplicidad y la eficiencia, y proporciona las siguientes funciones clave:
- Ligero y fácil de usar: el módulo está diseñado para ser simple y no requiere que se instalen paquetes o bibliotecas adicionales en el nodo de destino.
- Verificaciones rápidas de conectividad: el módulo realiza verificaciones rápidas, lo que lo convierte en una excelente herramienta para verificar la disponibilidad de múltiples nodos en un período corto.
- Seguro y fiable: el módulo aprovecha el protocolo SSH, lo que garantiza conexiones seguras y fiables entre el nodo de control y el nodo de destino.
Probar la conectividad a los nodos
Para probar la conectividad entre su nodo de control de Ansible y los nodos de destino, puede usar el comando ping ad hoc de Ansible. Este comando le permite verificar la disponibilidad y capacidad de respuesta de uno o más nodos en su archivo de inventario. Simplemente ejecute el siguiente comando:
ansible all -i inventory.yml -m ping
Reemplace «inventario.yml» con la ruta a su archivo de inventario. El comando devolverá un mensaje de éxito para cada nodo que responda a la solicitud de ping.
¿Cómo funciona Ansible Ping?
El módulo Ansible Ping funciona estableciendo una conexión SSH con el nodo de destino y ejecutando un script de Python simple en la máquina remota. Este script devuelve un mensaje de éxito si se establece la conexión y el script se ejecuta correctamente. El módulo no depende de las solicitudes de eco ICMP, que son comúnmente utilizadas por las herramientas de ping tradicionales, y en su lugar utiliza el protocolo SSH para conexiones seguras y confiables.
Ejecutar Ansible como un usuario diferente
En algunos casos, es posible que deba ejecutar Ansible como un usuario diferente con privilegios elevados. Para hacer esto, use el -tu bandera seguida del nombre de usuario deseado:
ansible all -i inventory.yml -m ping -u new_user
Reemplace «nuevo_usuario» con el nombre de usuario deseado.
Uso del comando ping AD HOC
El comando ping ad hoc se puede utilizar para realizar una prueba de conectividad rápida sin necesidad de un libro de jugadas. Para ejecutar el comando ping ad hoc, ejecute el siguiente comando en su terminal:
ansible all -i inventory.yml -m ping
Este comando enviará una solicitud de ping a todos los nodos definidos en el archivo de inventario y devolverá un mensaje de éxito para cada nodo que responda.
Uso del módulo de ping en Playbooks
Para usar el módulo de ping de Ansible dentro de un libro de jugadas, cree un nuevo archivo YAML y agregue el siguiente código:
--- - name: Check connectivity hosts: all tasks: - name: Ping all nodes ansible.builtin.ping:
Guarde el archivo con una extensión .yml y luego ejecute el libro de jugadas usando el libro de jugadas ansible dominio:
ansible-playbook -i inventory.yml ping_playbook.yml
Reemplace «inventario.yml» con la ruta a su archivo de inventario y «ping_playbook.yml» con la ruta a su archivo de libro de jugadas. Este libro de jugadas hará ping en todos los nodos de su inventario y proporcionará un resumen de los resultados.
Uso de una clave SSH personalizada
En los casos en que necesite usar una clave SSH personalizada para la autenticación, puede usar el -llave privada indicador seguido de la ruta a su archivo de clave privada al ejecutar el libro de jugadas ansible dominio:
ansible-playbook -i inventory.yml ping_playbook.yml --private-key /path/to/private_key
Reemplace «/ruta/a/clave_privada» con la ruta a su archivo de clave privada.
Solución de problemas de Ansible
Cuando encuentre problemas con Ansible, es esencial examinar la salida en busca de mensajes de error o advertencias. Los problemas comunes incluyen una configuración de inventario incorrecta, hosts inalcanzables o fallas de autenticación. La revisión de los registros puede proporcionar información valiosa sobre la causa raíz del problema.
Ejecución de libros de jugadas
Para ejecutar un libro de jugadas, use el libro de jugadas ansible Comando seguido del archivo de inventario y el archivo del libro de jugadas:
ansible-playbook -i inventory.yml your_playbook.yml
Reemplace «inventory.yml» con la ruta a su archivo de inventario y «your_playbook.yml» con la ruta a su archivo de libro de jugadas.
Limitar a uno o más hosts
Si desea apuntar a hosts o grupos de hosts específicos al ejecutar un libro de jugadas, puede usar el -límite indicador seguido del patrón de host:
ansible-playbook -i inventory.yml your_playbook.yml --limit 'host_pattern'
Reemplace «host_pattern» con el patrón de host deseado, como un nombre de grupo o un host específico.
Proporcionar la contraseña de sudo
En algunos casos, es posible que deba proporcionar la contraseña de sudo al ejecutar un libro de jugadas. Para hacer esto, use el –pedir-hacer-pasar o -K bandera:
ansible-playbook -i inventory.yml your_playbook.yml -K
Ejecución de un libro de jugadas en modo de ejecución en seco
Si desea verificar qué cambios haría un libro de jugadas sin aplicarlos realmente, puede usar el -controlar bandera:
ansible-playbook -i inventory.yml your_playbook.yml --check
Cifrado de un archivo Ansible existente
Para cifrar un archivo Ansible existente, como un libro de jugadas o un archivo de inventario, puede utilizar el cifrado de bóveda ansible dominio:
ansible-vault encrypt your_file.yml
Reemplace «su_archivo.yml» con la ruta al archivo que desea cifrar.
Visualización del contenido de un archivo cifrado
Para ver el contenido de un archivo Ansible cifrado, utilice el vista de bóveda ansible dominio:
ansible-vault view your_encrypted_file.yml
Reemplace «your_encrypted_file.yml» con la ruta al archivo cifrado.
Ejecución de un Playbook con datos cifrados a través de Ansible Vault
Para ejecutar un libro de jugadas que contiene datos cifrados, use el –pedir-pase-bóveda bandera:
ansible-playbook -i inventory.yml your_encrypted_playbook.yml --ask-vault-pass
Reemplace «your_encrypted_playbook.yml» con la ruta al archivo del libro de jugadas encriptado.
Descifrar archivos cifrados
Para descifrar un archivo Ansible cifrado, utilice el descifrado de la bóveda ansible dominio:
ansible-vault decrypt your_encrypted_file.yml
Reemplace «your_encrypted_file.yml» con la ruta al archivo cifrado.
Terminando
El módulo Ansible Ping es una excelente manera de garantizar la conectividad a sus nodos administrados. Además, la incorporación de varios indicadores y comandos le permite personalizar el uso de Ansible para que se ajuste a sus necesidades y requisitos específicos. Con esta guía, ahora debe tener el conocimiento y la confianza para explorar todo el potencial del módulo Ansible Ping y sus diversas aplicaciones para administrar y automatizar su entorno de TI.