En esta sección, aprenderás sobre los comandos básicos de Ansible que te permitirán ejecutar tareas simples y obtener información de tus sistemas gestionados. Estos comandos son fundamentales para cualquier usuario de Ansible, ya que proporcionan una base sólida para realizar operaciones más complejas en el futuro.
ansible --version
ansible --version
Este comando muestra la versión de Ansible instalada en tu sistema. Es útil para asegurarte de que estás utilizando la versión correcta de Ansible.
Salida esperada:
ansible [core 2.11.5] config file = /etc/ansible/ansible.cfg configured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible executable location = /usr/local/bin/ansible python version = 3.8.10 (default, May 3 2021, 08:55:58) [GCC 9.4.0]
ansible all -m ping
ansible all -m ping
Este comando utiliza el módulo ping
para verificar la conectividad con todos los hosts definidos en tu archivo de inventario. Es una buena manera de asegurarte de que Ansible puede comunicarse con tus sistemas gestionados.
Salida esperada:
host1 | SUCCESS => { "changed": false, "ping": "pong" } host2 | SUCCESS => { "changed": false, "ping": "pong" }
ansible all -a "uptime"
ansible all -a "uptime"
El comando anterior ejecuta el comando uptime
en todos los hosts definidos en tu archivo de inventario. El parámetro -a
permite pasar un comando de shell a los hosts.
Salida esperada:
host1 | CHANGED | rc=0 >> 08:23:45 up 10 days, 3:45, 1 user, load average: 0.00, 0.01, 0.05 host2 | CHANGED | rc=0 >> 08:23:45 up 5 days, 2:30, 2 users, load average: 0.10, 0.20, 0.15
ansible all -m setup
ansible all -m setup
El módulo setup
recopila y muestra información detallada sobre los hosts gestionados, como variables del sistema, configuraciones de red, y más. Esta información es útil para comprender el estado de tus sistemas.
Salida esperada:
host1 | SUCCESS => { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.10" ], "ansible_all_ipv6_addresses": [], "ansible_architecture": "x86_64", ... }, "changed": false } host2 | SUCCESS => { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.11" ], "ansible_all_ipv6_addresses": [], "ansible_architecture": "x86_64", ... }, "changed": false }
ansible all -m command -a "df -h"
ansible all -m command -a "df -h"
El módulo command
ejecuta comandos en los hosts gestionados. En este ejemplo, se utiliza para ejecutar df -h
, que muestra el uso del disco en un formato legible.
Salida esperada:
host1 | CHANGED | rc=0 >> Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 20G 28G 42% / host2 | CHANGED | rc=0 >> Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 15G 33G 31% /
Ejercicio Práctico
Ejercicio 1: Verificar Conectividad
- Objetivo: Verificar la conectividad con todos los hosts en tu archivo de inventario.
- Comando: Utiliza el comando
ansible all -m ping
. - Salida esperada: Todos los hosts deben responder con
pong
.
Ejercicio 2: Ejecutar un Comando Remoto
- Objetivo: Ejecutar el comando
uptime
en todos los hosts. - Comando: Utiliza el comando
ansible all -a "uptime"
. - Salida esperada: Debes ver la salida del comando
uptime
para cada host.
Ejercicio 3: Recopilar Información del Sistema
- Objetivo: Recopilar información detallada sobre los hosts gestionados.
- Comando: Utiliza el comando
ansible all -m setup
. - Salida esperada: Debes ver información detallada sobre cada host.
Soluciones
Solución al Ejercicio 1
Solución al Ejercicio 2
Solución al Ejercicio 3
Conclusión
En esta sección, has aprendido a utilizar algunos de los comandos básicos de Ansible para verificar la conectividad, ejecutar comandos remotos y recopilar información del sistema. Estos comandos son esenciales para cualquier usuario de Ansible y te proporcionan una base sólida para realizar operaciones más complejas en el futuro. En el próximo módulo, profundizaremos en los conceptos básicos de Ansible, incluyendo archivos de inventario y configuración.
Ansible: De Principiante a Avanzado
Módulo 1: Introducción a Ansible
Módulo 2: Conceptos Básicos de Ansible
Módulo 3: Playbooks
- Introducción a los Playbooks
- Escribiendo tu Primer Playbook
- Estructura del Playbook
- Variables y Hechos
- Condicionales y Bucles
Módulo 4: Roles
Módulo 5: Técnicas Avanzadas de Playbook
Módulo 6: Ansible Galaxy
Módulo 7: Ansible Tower
- Introducción a Ansible Tower
- Instalando Ansible Tower
- Usando Ansible Tower
- Gestionando Proyectos e Inventarios
Módulo 8: Ansible para DevOps
Módulo 9: Mejores Prácticas de Ansible
- Organización del Código
- Mejores Prácticas de Seguridad
- Ajuste de Rendimiento
- Pruebas de Código Ansible