Posterior a de una prolongada recopilación de datos hemos podido resolver esta aprieto que suelen tener muchos de nuestros lectores. Te regalamos la solución y nuestro objetivo es que sea de mucha ayuda.
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
ayes
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 |
|
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/hashesvar: [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)
Si te ha sido de ayuda nuestro post, nos gustaría que lo compartas con el resto seniors de este modo nos ayudas a difundir este contenido.