merge_custom_vars

merge_custom_vars

Загрузка файлов переменных с настраиваемым приоритетом и глубокое объединение хешей внутри. По умолчанию файлы переменных загружаются из папки rpi_vars в ролях, включенных в плейбук, переопределяя их из директории плейбука, а наивысший приоритет имеют переменные rpi_vars из инвентаря. Вы можете задать свой собственный список файлов/папок переменных для объединения и их приоритет.

Требования

Нет специальных требований.

Переменные роли

rpi_dir: имя папки переменных для объединения. По умолчанию это rpi_vars.

rpi_files: файлы или папки с переменными для объединения. Порядок элементов в массиве определяет их приоритет. По умолчанию:

  • "{{ rpi_role_dirs }}" # папка rpi_vars из ролей, включенных в плейбук. Роли могут быть размещены внутри плейбука (локально) или в другом месте, определенном в переменной конфигурации roles_path ("shared" в моем случае).
  • "{{ rpi_playbook_dirs }}" # папка rpi_vars в плейбуке
  • "{{ rpi_inventory_dirs }}" # папка rpi_vars в инвентаре. Если ваши инвентари находятся в отдельных папках (в моем случае).

Таким образом, эта роль выполняет две основные задачи:

  1. Все хеши, содержащиеся в rpi_files (yaml, json), объединяются глубоко и записываются во временную папку.
  2. Результат объединенных переменных загружается задачей include_vars.

Зависимости

Ansible 2+

Пример плейбука

Основная концепция этой роли, помимо объединения хешей, заключается в создании общих переменных, которые могут использоваться между ролями, более точно на уровне плейбука и инвентаря. Включите эту роль в первую позицию в плейбуке, если вы ее используете.

Хотя я пока не узнал, как получить пароль от хранилища из пользовательского модуля, зашифрованные переменные могут быть импортированы в "корзину" для объединения с помощью плагина lookup, например:

---

secret:
  key: "{{ lookup('file', '{{ playbook_dir }}/files/vault.encrypted.key.txt') }}"

Лицензия

GPLv2

Информация об авторе

Евгений Кондрашов https://github.com/eugene0707

О проекте

Load vars files with customizable precedence and deep merge hashes within.

Установить
ansible-galaxy install eugene0707/merge_custom_vars
Лицензия
Unknown
Загрузки
110
Владелец