Usar ansible_facts en las tareas
Cree ramificaciones según datos del sistema operativo, la memoria y la IP.
Usar ansible_facts en las tareas es una lección gratuita de Ansible Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ansible Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ansible Academy incluye 4 lecciones en total.
De los datos a las decisiones
Los facts recopilados solo son útiles si actúa basándose en ellos. Ahora extraerá valores de ansible_facts directamente en sus tareas. 🌟
Hacer referencia a un fact
Use la misma sintaxis {{ }} que con cualquier variable. Dentro de las llaves, indique el nombre del fact que desea, como distribution del host.
- debug:
msg: "OS is {{ ansible_distribution }}"También puede acceder al diccionario
También puede leer los facts mediante el diccionario ansible_facts, usando claves entre corchetes. Ambos estilos apuntan a los mismos datos.
{{ ansible_facts['distribution'] }}Tomar decisiones según el sistema operativo
Combine un fact con when para ejecutar una tarea únicamente en los hosts correspondientes, como instalar un paquete solo en sistemas Debian.
when: ansible_os_family == "Debian"Elegir el paquete adecuado
Los facts permiten que una sola tarea funcione con muchas distribuciones. Elija apache2 o httpd según la familia del sistema operativo en lugar de escribir dos playbooks.
name: "{{ 'apache2' if ansible_os_family == 'Debian' else 'httpd' }}"Usar facts numéricos
Facts como ansible_memtotal_mb son números, por lo que puede compararlos y omitir trabajo en hosts con recursos insuficientes.
when: ansible_memtotal_mb > 2048Acceder a valores anidados
Para los facts anidados, encadene las claves con puntos. La dirección IPv4 predeterminada se encuentra bajo ansible_default_ipv4 y después bajo address.
{{ ansible_default_ipv4.address }}Facts en plantillas
Los mismos nombres de fact funcionan dentro de las plantillas Jinja2. Inserte el hostname o la IP de un host directamente en un archivo de configuración generado.
server_name {{ ansible_hostname }};Recorrer facts de tipo lista
Algunos facts son listas, como ansible_interfaces. Puede recorrerlas para actuar sobre cada interfaz de red que tenga un host.
loop: "{{ ansible_interfaces }}"Confirmar antes de confiar
¿No está seguro del valor exacto de un fact? Imprímalo primero con debug y, después, construya la lógica que depende de él.
- debug:
var: ansible_distribution_versionUn playbook, muchos hosts
Como los facts son específicos de cada host, las tareas basadas en facts hacen que un solo playbook se comporte correctamente en un conjunto heterogéneo de máquinas.
Comprobación rápida
¿Cómo ejecutaría una tarea únicamente en hosts de la familia Debian?
Resumen
Leyó facts con {{ }}, tomó decisiones con when, accedió a valores anidados y recorrió facts de tipo lista para crear tareas adaptables. ✨
Preguntas frecuentes
¿La lección «Usar ansible_facts en las tareas» es gratis?
Sí — el texto completo de «Usar ansible_facts en las tareas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ansible Academy, actualiza a CoddyKit PRO. El curso de Ansible Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Usar ansible_facts en las tareas»?
Cree ramificaciones según datos del sistema operativo, la memoria y la IP. Practicas Ansible Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Ansible Academy?
No se requiere experiencia previa. Ansible Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Usar ansible_facts en las tareas»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Ansible Academy?
Sí. Cada lección de Ansible Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Qué son los facts y por qué importan
- Explorar facts con el módulo setup
- Usar ansible_facts en las tareas
- Desactivar la recopilación de facts para ganar velocidad