config#

Расширение ansible.builtin.config используется для получения действующих настроек Ansible, заданных во множестве различных источников: инвентарные списки, переменные окружения, аргументы командной строки, переменные сценариев, конфигурационный файл ansible.cfg.

Чтобы получить список основных настроек, выполните команду:

ansible-config list

Чтобы получить также список настроек расширений, выполните команду с аргументами -t all:

ansible-config list -t all

Чтобы получить список действующих значений настроек, выполните команду:

ansible-config dump

Особенности работы#

Расширение возвращает значения в контексте текущего узла (inventory_hostname). Это значит, что значение одной и той же настройки для разных узлов может различаться.

Не используйте расширение для получения значений настроек, если они заданы в директивах или на них влияет делегирование. Расширение не гарантирует, что в этом случае полученные значения будут корректны.

Позиционные параметры#

Расширение принимает названия искомых настроек как позиционные параметры.

Именованные параметры#

Расширение принимает следующие именованные параметры:

on_missing#

Поведение модуля в том случае, когда не удастся найти указанную настройку.

Возможные значения:

  • error – прерывание выполнения задачи с сообщением об ошибке;

  • skip – пропуск задачи без сообщения в выводе;

  • warn – вывод предупреждающего сообщения и продолжение выполнения задачи.

Значение по умолчанию: error.

plugin_name#

Название расширения, настройки которого нужно получить.

plugin_type#

Тип расширения, указанного в значении параметра plugin_name.

Возможные значения:

  • become;

  • cache;

  • callback;

  • cliconf;

  • connection;

  • httpapi;

  • inventory;

  • lookup;

  • netconf;

  • shell;

  • vars.

Возвращаемые значения#

Расширение возвращает список значений указанных настроек.

Условия: успешное завершение.

Примеры#

Для изучения возможностей модуля ознакомьтесь с приведенными ниже примерами.

Получение значения одной настройки#

Следующий пример демонстрирует получение значения настройки DEFAULT_BECOME_USER:

---
# ...
  tasks:
    - name: Print default become user name
      ansible.builtin.debug:
        msg: "Default become user: {{ lookup('ansible.builtin.config', 'DEFAULT_BECOME_USER') }}"

Результат выполнения задачи:

ok: [node1.example.com] => {
    "msg": "Default become user: root"
}

Получение значений нескольких настроек#

Следующий пример демонстрирует получение значений нескольких настроек:

---
# ...
  tasks:
    - name: Print settings
      ansible.builtin.debug:
        msg: "{{ item }}"
      loop: "{{ lookup('ansible.builtin.config', 'DEFAULT_DEBUG', 'DEFAULT_BECOME_USER', 'INTERPRETER_PYTHON') }}"

Результат выполнения задачи:

ok: [node1.example.com] => (item=False) => {
    "msg": false
}
ok: [node1.example.com] => (item=root) => {
    "msg": "root"
}
ok: [node1.example.com] => (item=/usr/bin/python3.11) => {
    "msg": "/usr/bin/python3.11"
}

Получение настроек расширений#

Следующий пример демонстрирует получение значений настроек расширения подключения ansible.builtin.ssh. Чтобы полученные значения были представлены в виде списка, в аргументы вызова lookup добавлен параметр wantlist со значением true:

---
# ...
  tasks:
  - name: Show plugin settings
      ansible.builtin.debug:
        msg: "{{ item }}"
      loop: "{{ lookup('ansible.builtin.config',
                       'private_key_file',
                       'remote_user',
                       plugin_type='connection',
                       plugin_name='ssh',
                       wantlist=true) }}"

Результат выполнения задачи:

ok: [node1.example.com] => (item=./key) => {
    "msg": "./key"
}
ok: [node1.example.com] => (item=astra) => {
    "msg": "astra"
}