En este módulo, aprenderemos sobre las variables y los hechos en Ansible. Las variables y los hechos son componentes esenciales que permiten la personalización y la flexibilidad en los playbooks de Ansible. Vamos a desglosar estos conceptos y proporcionar ejemplos prácticos para que puedas entender cómo utilizarlos eficazmente.

¿Qué son las Variables en Ansible?

Las variables en Ansible son valores que puedes definir y reutilizar en tus playbooks. Estas variables pueden ser utilizadas para almacenar información que puede cambiar, como nombres de servidores, rutas de archivos, configuraciones de red, etc.

Definiendo Variables

Las variables en Ansible se pueden definir en varios lugares:

  • En el playbook: Directamente dentro del archivo YAML.
  • En archivos de inventario: Asociadas a hosts o grupos de hosts.
  • En archivos de variables: Archivos YAML separados que se incluyen en los playbooks.
  • En la línea de comandos: Pasadas como argumentos al ejecutar el playbook.

Ejemplo de Variables en un Playbook

---
- name: Ejemplo de uso de variables
  hosts: localhost
  vars:
    saludo: "Hola"
    nombre: "Mundo"
  tasks:
    - name: Mostrar mensaje
      debug:
        msg: "{{ saludo }}, {{ nombre }}!"

En este ejemplo:

  • Definimos dos variables saludo y nombre.
  • Utilizamos la tarea debug para mostrar un mensaje que incluye estas variables.

Tipos de Variables

Ansible soporta varios tipos de variables:

  • Strings: Cadenas de texto.
  • Números: Enteros y flotantes.
  • Listas: Listas de valores.
  • Diccionarios: Pares clave-valor.

Ejemplo de Diferentes Tipos de Variables

---
- name: Ejemplo de diferentes tipos de variables
  hosts: localhost
  vars:
    cadena: "Texto"
    numero: 42
    lista: ["uno", "dos", "tres"]
    diccionario:
      clave1: "valor1"
      clave2: "valor2"
  tasks:
    - name: Mostrar variables
      debug:
        msg: "Cadena: {{ cadena }}, Número: {{ numero }}, Lista: {{ lista }}, Diccionario: {{ diccionario }}"

¿Qué son los Hechos en Ansible?

Los hechos (facts) en Ansible son datos recopilados automáticamente sobre los hosts gestionados. Estos datos incluyen información sobre el sistema operativo, la red, el hardware, etc. Los hechos se recopilan utilizando el módulo setup.

Recopilación de Hechos

Por defecto, Ansible recopila hechos al inicio de la ejecución de un playbook. Puedes desactivar esta recopilación automática si no la necesitas.

Ejemplo de Uso de Hechos

---
- name: Ejemplo de uso de hechos
  hosts: localhost
  tasks:
    - name: Mostrar información del sistema
      debug:
        var: ansible_facts

En este ejemplo:

  • Utilizamos la tarea debug para mostrar todos los hechos recopilados sobre el host localhost.

Accediendo a Hechos Específicos

Puedes acceder a hechos específicos utilizando su nombre. Por ejemplo, para obtener la dirección IP del host:

---
- name: Obtener dirección IP
  hosts: localhost
  tasks:
    - name: Mostrar dirección IP
      debug:
        msg: "La dirección IP es {{ ansible_facts['ansible_default_ipv4']['address'] }}"

Ejercicio Práctico

Ejercicio 1: Definir y Usar Variables

  1. Crea un playbook llamado variables.yml.
  2. Define las siguientes variables:
    • usuario: "admin"
    • puerto: 8080
  3. Crea una tarea que muestre un mensaje utilizando estas variables.

Solución:

---
- name: Ejercicio de variables
  hosts: localhost
  vars:
    usuario: "admin"
    puerto: 8080
  tasks:
    - name: Mostrar mensaje
      debug:
        msg: "El usuario es {{ usuario }} y el puerto es {{ puerto }}"

Ejercicio 2: Usar Hechos para Mostrar Información del Sistema

  1. Crea un playbook llamado hechos.yml.
  2. Crea una tarea que muestre la versión del sistema operativo del host.

Solución:

---
- name: Ejercicio de hechos
  hosts: localhost
  tasks:
    - name: Mostrar versión del sistema operativo
      debug:
        msg: "La versión del sistema operativo es {{ ansible_facts['ansible_distribution_version'] }}"

Conclusión

En esta sección, hemos aprendido sobre las variables y los hechos en Ansible. Las variables permiten la personalización y reutilización de valores en los playbooks, mientras que los hechos proporcionan información detallada sobre los hosts gestionados. Estos conceptos son fundamentales para escribir playbooks eficientes y flexibles.

En el próximo módulo, profundizaremos en los condicionales y bucles, que nos permitirán controlar el flujo de ejecución de nuestras tareas en los playbooks.

© Copyright 2024. Todos los derechos reservados