set_fact - Set host facts from a task
Synopsis
- This module allows setting new variables. Variables are set on a host-by-host basis just like facts discovered by the setup module.
- These variables will be available to subsequent plays during an ansible-playbook run, but will not be saved across executions even if you use a fact cache.
- Per the standard Ansible variable precedence rules, many other types of variables have a higher priority, so this value may be overridden. See Variable Precedence Guide for more information.
- This module is also supported for Windows targets.
Parameters
Parameter | Choices/Defaults | Comments |
---|---|---|
cacheable (added in 2.4) | Default: no | This boolean indicates if the facts set will also be added to the fact cache, if fact caching is enabled. |
key_value required | Default: None | The set_fact module takes key=value pairs as variables to set in the playbook scope. Or alternatively, accepts complex arguments using the args: statement. |
Notes
Note
- The
var=value
notation can only create strings or booleans. If you want to create lists/arrays or dictionary/hashes usevar: [val1, val2]
- This module is also supported for Windows targets.
- Since ‘cacheable’ is now a module param, ‘cacheable’ is no longer a valid fact name as of 2.4.
Examples
# Example setting host facts using key=value pairs, note that this always creates strings or booleans - set_fact: one_fact="something" other_fact="{{ local_var }}" # Example setting host facts using complex arguments - set_fact: one_fact: something other_fact: "{{ local_var * 2 }}" another_fact: "{{ some_registered_var.results | map(attribute='ansible_facts.some_fact') | list }}" # Example setting facts so that they will be persisted in the fact cache - set_fact: one_fact: something other_fact: "{{ local_var * 2 }}" cacheable: true # As of 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: - set_fact: one_fact: true other_fact: false
Status
This module is flagged as stableinterface which means that the maintainers for this module guarantee that no backward incompatible interface changes will be made.
Support
For more information about Red Hat’s support of this module, please refer to this Knowledge Base article
Author
- Dag Wieers (@dagwieers)
Hint
If you notice any issues in this documentation you can edit this document to improve it.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/modules/set_fact_module.html