set_fact – Установка фактов хоста из задачи
Обзор
- Этот модуль позволяет устанавливать новые переменные.
- Переменные устанавливаются на каждом хосте, так же как факты, обнаруженные модулем setup.
- Эти переменные будут доступны последующим этапам во время выполнения ansible-playbook.
- Установите
cacheableнаyes, чтобы сохранять переменные между выполнениями с использованием кэша фактов. Переменные, созданные с помощью set_fact, имеют разный приоритет в зависимости от того, кэшируются они или нет. - В соответствии со стандартными правилами приоритета переменных Ansible, многие другие типы переменных имеют более высокий приоритет, поэтому это значение может быть перезаписано.
- Этот модуль также поддерживается для целевых систем Windows.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| cacheable boolean добавлен в 2.4 |
| Этот булевый параметр преобразует переменную в фактический «факт», который также будет добавлен в кэш фактов, если кэширование фактов включено. Обычно этот модуль создает «переменные уровня хоста» и имеет очень высокий приоритет, этот параметр изменяет природу и приоритет (на 7 пунктов) создаваемой переменной. https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable Это фактически создает 2 копии переменной: обычную переменную уровня хоста «set_fact» с высоким приоритетом и более низкую переменную «ansible_fact», которая доступна для сохранения через плагин кэша фактов. Это создает потенциально запутанное взаимодействие с meta: clear_facts, так как он удалит «ansible_fact», но не переменную уровня хоста. |
| key_value - / обязательно | Модуль set_fact принимает пары ключ=значение в качестве переменных для установки в области выполнения книги задач. Или, альтернативно, принимает сложные аргументы с использованием выражения args:. |
Примечания
Примечание
- Запись
var=valueможет создавать только строки или булевы значения. Если вы хотите создать списки/массивы или словари/хеши, используйтеvar: [val1, val2]. - Поскольку «cacheable» теперь является параметром модуля, «cacheable» больше не является допустимым именем факта начиная с Ansible 2.4.
- Этот модуль также поддерживается для целевых систем Windows.
См. также
См. также
- include_vars – Загрузка переменных из файлов динамически в задаче
- Официальная документация по модулю include_vars.
- Приоритет переменных: Где следует разместить переменную?
- Дополнительная информация о приоритете переменных и типе переменной, которая имеет преимущество перед другими.
Примеры
# 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: 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:
- set_fact:
one_fact: yes
other_fact: no
Статус
- Этот модуль гарантированно будет иметь изменения интерфейса, совместимые с предыдущими версиями. [stableinterface]
- Этот модуль поддерживается основной командой Ansible. [core]
Поддержка Red Hat
Дополнительная информация о поддержке Red Hat этого модуля доступна в этой статье базы знаний Red Hat.
Авторы
- Dag Wieers (@dagwieers)
Подсказка
Если вы заметите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/set_fact_module.html