include_vars - Загрузка переменных из файлов динамически в задаче
Новая в версии 1.4.
Описание
- Загружает переменные из файлов YAML/JSON динамически из файла или из каталога рекурсивно во время выполнения задачи. При загрузке каталога файлы сортируются в алфавитном порядке перед загрузкой.
- Этот модуль также поддерживается для целевых систем Windows.
Параметры
| Параметр | Обязательный | По умолчанию | Варианты | Комментарии |
|---|---|---|---|---|
| depth (добавлено в 2.2)
| нет | При использовании dir, этот модуль по умолчанию рекурсивно проходит по всем подкаталогам и загружает переменные. Указав глубину, этот модуль будет проходить только до указанной глубины. | ||
| dir (добавлено в 2.2)
| нет | Имя каталога, из которого должны быть загружены переменные. Если путь относительный, модуль будет искать файл в подкаталоге vars/ роли или относительно playbook. | ||
| extensions (добавлено в 2.3)
| нет | [u'yaml', u'yml', u'json'] | Список расширений файлов для чтения при использовании dir. | |
| file (добавлено в 2.2)
| нет | Имя файла, из которого должны быть загружены переменные. Если путь относительный, модуль будет искать файл в подкаталоге vars/ роли или относительно playbook. | ||
| files_matching (добавлено в 2.2)
| нет | Ограничивает файлы, загружаемые в любом каталоге, этим регулярным выражением. | ||
| free-form | нет | Этот модуль позволяет указать параметр 'file' напрямую без других параметров. Параметра 'free-form' нет, это просто указатель, см. пример ниже. | ||
| ignore_files (добавлено в 2.2)
| нет | Список имен файлов, которые нужно игнорировать. | ||
| name (добавлено в 2.2)
| нет | Имя переменной, в которую назначить включенные переменные. Если опущено (null), они будут сделаны переменными верхнего уровня. |
Примеры
- name: Include vars of stuff.yaml into the 'stuff' variable (2.2).
include_vars:
file: stuff.yaml
name: stuff
- name: Conditionally decide to load in variables into 'plans' when x is 0, otherwise do not. (2.2)
include_vars:
file: contingency_plan.yaml
name: plans
when: x == 0
- name: Load a variable file based on the OS type, or a default if not found. Using free-form to specify the file.
include_vars: "{{ item }}"
with_first_found:
- "{{ ansible_distribution }}.yaml"
- "{{ ansible_os_family }}.yaml"
- default.yaml
- name: Bare include (free-form)
include_vars: myvars.yaml
- name: Include all .json and .jsn files in vars/all and all nested directories (2.3)
include_vars:
dir: vars/all
extensions:
- json
- jsn
- name: Include all default extension files in vars/all and all nested directories and save the output in test. (2.2)
include_vars:
dir: vars/all
name: test
- name: Include default extension files in vars/services (2.2)
include_vars:
dir: vars/services
depth: 1
- name: Include only files matching bastion.yaml (2.2)
include_vars:
dir: vars
files_matching: bastion.yaml
- name: Include all .yaml files except bastion.yaml (2.3)
include_vars:
dir: vars
ignore_files: bastion.yaml
extensions: [yaml]
Возвращаемые значения
Общие возвращаемые значения описаны здесь Возвращаемые значения, следующие поля уникальны для данного модуля:
| Имя | Описание | Возвращается | Тип | Пример |
|---|---|---|---|---|
| ansible_facts | Переменные, которые были включены и их значения | успех | словарь | {'переменная': 'значение'} |
| ansible_included_var_files | Список файлов, которые были успешно включены | успех | список | ['/путь/к/файлу.yaml', '/путь/к/файлу.json'] |
Примечания
Примечание
- Этот модуль также поддерживается для целевых систем Windows.
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют, что не будут вноситься несовместимые изменения в интерфейс.
Информация о поддержке
Дополнительную информацию о поддержке данного модуля компанией Red Hat см. по этой knowledge base article<https://access.redhat.com/articles/rhel-top-support-policies> ссылке.
Для получения помощи в разработке модулей, если вы заинтересованы, прочтите Информацию о сообществе и содействие, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/include_vars_module.html