ansible.builtin.include_vars – Загрузка переменных из файлов динамически в задаче
Примечание
Этот модуль является частью ansible-base и включен во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля include_vars, даже не указывая ключевое слово collections:. Несмотря на это, мы рекомендуем использовать полное имя модуля (FQCN) для удобной ссылки на документацию по модулю и для предотвращения конфликтов с другими коллекциями, которые могут иметь то же самое имя модуля.
Новое в версии 1.4: ansible.builtin
Описание
- Динамически загружает переменные YAML/JSON из файла или каталога рекурсивно во время выполнения задачи.
- При загрузке каталога файлы сортируются в алфавитном порядке перед загрузкой.
- Этот модуль также поддерживается для целевых платформ Windows.
- Чтобы назначить включенные переменные другому хосту, чем
inventory_hostname, используйтеdelegate_toи задайтеdelegate_facts=yes.
Примечание
У этого модуля есть соответствующий плагин действий.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| depth целое число добавлен в версии 2.2 ansible.builtin | Значение по умолчанию: 0 | При использовании dir, этот модуль по умолчанию рекурсивно перебирает каждую подпапку и загружает переменные. Установив явное значение глубины, этот модуль будет заходить только на указанную глубину. |
| dir путь добавлен в версии 2.2 ansible.builtin | Имя каталога, из которого должны загружаться переменные. Если путь относительный и задача находится внутри роли, Ansible будет искать внутри подкаталога vars/ роли. Если путь относительный и не находится внутри роли, он будет интерпретироваться относительно playbook. | |
| extensions список / элементы=строка добавлен в версии 2.3 ansible.builtin | Значение по умолчанию: ["json", "yaml", "yml"] | Список расширений файлов для чтения при использовании dir. |
| file путь добавлен в версии 2.2 ansible.builtin | Имя файла, из которого должны загружаться переменные. Если путь относительный, Ansible будет искать файл в подкаталоге vars/ роли или относительно playbook. | |
| files_matching строка добавлен в версии 2.2 ansible.builtin | Ограничение файлов, загружаемых в любом каталоге, с помощью регулярного выражения. | |
| free-form строка | Этот модуль позволяет указать опцию 'file' непосредственно без дополнительных опций. Опции 'free-form' нет, это просто индикатор, см. пример ниже. | |
| ignore_files список / элементы=строка добавлен в версии 2.2 ansible.builtin | Список имен файлов для игнорирования. | |
| ignore_unknown_extensions логический тип добавлен в версии 2.7 ansible.builtin |
| Игнорировать неизвестные расширения файлов в каталоге. Это позволяет пользователям указать каталог, содержащий файлы vars, перемешанные с файлами, не являющимися vars (например, каталог с README и файлами vars). |
| name строка добавлен в версии 2.2 ansible.builtin | Имя переменной, в которую будут назначены включенные переменные. Если опущено (null), они будут определены на верхнем уровне. |
Примечания
Примечание
- Этот модуль также поддерживается для целевых платформ Windows.
См. также
См. также
- ansible.builtin.set_fact
-
Официальная документация модуля ansible.builtin.set_fact.
- Управление выполнением задач: делегирование и локальные действия
-
Дополнительная информация о делегировании задач.
Примеры
- 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: "{{ lookup('first_found', params) }}"
vars:
params:
files:
- '{{ansible_distribution}}.yaml'
- '{{ansible_os_family}}.yaml'
- default.yaml
paths:
- 'vars'
- 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'
- name: Ignore warnings raised for files with unknown extensions while loading (2.7)
include_vars:
dir: vars
ignore_unknown_extensions: True
extensions:
- ''
- 'yaml'
- 'yml'
- 'json'
Возвращаемые значения
Общие возвращаемые значения описаны в этом разделе, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| ansible_included_var_files список / элементы=строка добавлен в версии 2.4 ansible.builtin | успех | Список файлов, успешно включённых Пример: ['/path/to/file.json', '/path/to/file.yaml'] |
Авторы
- Allen Sanabria (@linuxdynasty)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/builtin/include_vars_module.html