Probar Ansible con un Comando Sencillo
En este paso, probará su instalación de Ansible ejecutando un comando simple contra el sistema local. Cambie al directorio del proyecto y use el archivo de inventario preconfigurado para ejecutar un comando ad-hoc de Ansible.
Navegue al directorio del proyecto y pruebe la funcionalidad básica de ping:
cd /home/labex/project
ansible localhost -m ping
El módulo ping en realidad no envía paquetes ICMP; en cambio, verifica que Ansible pueda conectarse al objetivo y ejecutar código Python. Una respuesta exitosa se verá así:
localhost | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
Desglosemos esta salida:
- localhost | SUCCESS: Muestra que el comando se ejecutó con éxito en el objetivo localhost
- ansible_facts: Contiene información del sistema descubierta durante la ejecución
- discovered_interpreter_python: La ruta del intérprete de Python que Ansible encontró y utilizará
- changed: false: Indica que no se realizaron cambios en el sistema (ping es de solo lectura)
- ping: "pong": La respuesta clásica que confirma la conectividad de Ansible
La respuesta "pong" confirma que Ansible funciona correctamente y puede comunicarse con el sistema objetivo.
Probemos también la recopilación de información del sistema utilizando el módulo setup:
ansible localhost -m setup -a "filter=ansible_distribution*"
Este comando utiliza el módulo setup para recopilar datos del sistema, filtrando específicamente la información de la distribución. Debería ver una salida que contenga detalles sobre su sistema Red Hat Enterprise Linux:
localhost | SUCCESS => {
"ansible_facts": {
"ansible_distribution": "RedHat",
"ansible_distribution_file_parsed": true,
"ansible_distribution_file_path": "/etc/redhat-release",
"ansible_distribution_file_search_string": "Red Hat",
"ansible_distribution_file_variety": "RedHat",
"ansible_distribution_major_version": "9",
"ansible_distribution_release": "Plow",
"ansible_distribution_version": "9.6",
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false
}
Entendiendo la salida de los datos del sistema:
- ansible_distribution: El nombre de la distribución de Linux (RedHat)
- ansible_distribution_file_parsed: Si Ansible leyó con éxito el archivo de distribución
- ansible_distribution_file_path: El archivo que contiene la información de la distribución
- ansible_distribution_file_search_string: El patrón de texto utilizado para identificar la distribución
- ansible_distribution_file_variety: La familia de la distribución (familia RedHat)
- ansible_distribution_major_version: El número de versión principal (9)
- ansible_distribution_release: El nombre en clave de la versión (Plow)
- ansible_distribution_version: El número de versión completo (9.6)
- discovered_interpreter_python: Intérprete de Python descubierto por Ansible
Esto confirma que Ansible puede recopilar con éxito información del sistema del host objetivo, lo cual es esencial para crear automatización condicional basada en las características del sistema.