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.

  1. 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.

$ ansible --version

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]

  1. 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.

$ ansible all -m ping

Salida esperada:

host1 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
host2 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

  1. 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.

$ ansible all -a "uptime"

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

  1. 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.

$ ansible all -m setup

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
}

  1. 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.

$ ansible all -m command -a "df -h"

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

  1. Objetivo: Verificar la conectividad con todos los hosts en tu archivo de inventario.
  2. Comando: Utiliza el comando ansible all -m ping.
  3. Salida esperada: Todos los hosts deben responder con pong.

Ejercicio 2: Ejecutar un Comando Remoto

  1. Objetivo: Ejecutar el comando uptime en todos los hosts.
  2. Comando: Utiliza el comando ansible all -a "uptime".
  3. Salida esperada: Debes ver la salida del comando uptime para cada host.

Ejercicio 3: Recopilar Información del Sistema

  1. Objetivo: Recopilar información detallada sobre los hosts gestionados.
  2. Comando: Utiliza el comando ansible all -m setup.
  3. Salida esperada: Debes ver información detallada sobre cada host.

Soluciones

Solución al Ejercicio 1

$ ansible all -m ping

Solución al Ejercicio 2

$ ansible all -a "uptime"

Solución al Ejercicio 3

$ ansible all -m setup

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.

© Copyright 2024. Todos los derechos reservados