Sobes.tech
Junior

Nombra las formas de asignar variables en Ansible.

sobes.tech AI

Respuesta de la IA

Las variables en Ansible se pueden definir de varias maneras:

  • Archivos de inventario: en archivos hosts o en archivos separados en los directorios group_vars y host_vars.
  • Línea de comandos: usando la opción --extra-vars o -e.
  • Playbooks: en las secciones vars, vars_files, include_vars.
  • Roles: en los directorios vars o mediante parámetros al llamar al rol.
  • Archivos de configuración de Ansible: en ansible.cfg, aunque no se recomienda para valores específicos.
  • Inventario dinámico: mediante scripts que generan inventario y variables en tiempo de ejecución.
  • Vaults: para almacenar datos secretos.

El orden de prioridad para asignar variables en Ansible de menor a mayor:

  1. ansible.cfg
  2. Archivos de inventario (host_vars, group_vars)
  3. Roles (de default, luego de vars)
  4. Sección vars en el playbook
  5. Variables pasadas por línea de comandos

Ejemplo de asignación de variable en inventario:

# inventory.ini
[webservers]
web1 ansible_host=192.168.1.100

[webservers:vars]
http_port=80

Ejemplo de asignación de variable en playbook:

# playbook.yml
---
- name: Configurar servidor web
  hosts: webservers
  vars:
    greeting: "Hello, World!"
  tasks:
    - name: Imprimir saludo
      debug:
        msg: "{{ greeting }}"

Ejemplo de asignación de variable desde línea de comandos:

ansible-playbook playbook.yml -e "user=admin"