Spec-Zone.ru › Ansible 2.11

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API