Nota

Este módulo es parte de ansible-base e incluido en todas las instalaciones de Ansible. En la mayoría de los casos, puede usar el nombre corto del módulo set_fact incluso sin especificar el collections: palabra clave. A pesar de eso, le recomendamos que use el FQCN para vincular fácilmente la documentación del módulo y evitar conflictos con otras colecciones que puedan tener el mismo nombre de módulo.

Nuevo en la versión 1.2: de ansible.incorporado

  • Sinopsis
  • Parámetros
  • notas
  • Ver también
  • Ejemplos

Sinopsis

  • Este módulo permite configurar nuevas variables.
  • Las variables se configuran host por host al igual que los hechos descubiertos por el módulo de configuración.
  • Estas variables estarán disponibles para reproducciones posteriores durante una ejecución del libro de jugadas ansible.
  • Establecer cacheable a yes para guardar variables en las ejecuciones utilizando un caché de hechos. Las variables creadas con set_fact tienen diferentes precedencias dependiendo de si están o no en caché.
  • Según las reglas estándar de precedencia de variables de Ansible, muchos otros tipos de variables tienen una prioridad más alta, por lo que este valor puede anularse.
  • Este módulo también es compatible con objetivos de Windows.

Nota

Este módulo tiene su correspondiente complemento de acción.

Parámetros

Parámetro Opciones/Predeterminados Comentarios
cacheablebooleano agregado en 2.4 de ansible.builtin
    Opciones:

  • no
Este booleano convierte la variable en un ‘hecho’ real que también se agregará al caché de hechos, si el almacenamiento en caché de hechos está habilitado. Normalmente, este módulo crea ‘variables de nivel de host’ y tiene una precedencia mucho mayor, esta opción cambia la naturaleza y la precedencia ( por 7 pasos) de la variable creada. https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variableEn realidad, esto crea 2 copias de la variable, una variable de host ‘set_fact’ normal con alta prioridad y una ‘ansible_fact’ más baja que está disponible para la persistencia a través del complemento de caché de datos. Esto crea una interacción posiblemente confusa con meta: clear_facts ya que eliminará el ‘ansible_fact’ pero no la variable host.
valor clavestring / requerido los set_fact módulo toma key=pares de valor como variables para establecer en el alcance del libro de jugadas. O alternativamente, acepta argumentos complejos usando el args: declaración.

notas

Nota

  • los var=value La notación solo puede crear cadenas o valores booleanos. Si desea crear listas/matrices o usar diccionario/hashes var: [val1, val2].
  • Dado que ‘cacheable’ ahora es un parámetro de módulo, ‘cacheable’ ya no es un nombre de hecho válido a partir de Ansible 2.4.
  • Este módulo también es compatible con objetivos de Windows.

Ver también

Ver también

ansible.builtin.include_vars

La documentación oficial sobre el ansible.builtin.include_vars módulo.

Precedencia de variables: ¿Dónde debo poner una variable?

Más información relacionada con la precedencia de variables y qué tipo de variable gana a otras.

Ejemplos

-name: Setting host facts using key=value pairs, note that this always creates strings or booleans
  set_fact: one_fact="something" other_fact=" local_var "

-name: Setting host facts using complex arguments
  set_fact:one_fact: something
    other_fact:" local_var * 2 "another_fact:" list "-name: Setting facts so that they will be persisted in the fact cache
  set_fact:one_fact: something
    other_fact:" local_var * 2 "cacheable: yes

# As of Ansible 1.8, Ansible will convert boolean strings ('true', 'false', 'yes', 'no')# to proper boolean values when using the key=value syntax, however it is still# recommended that booleans be set using the complex argument style:-name:  Setting booleans using complex argument style
  set_fact:one_fact: yes
    other_fact: no

Autores

  • Dag Wieers (@dagwieers)