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 в инвентаре. Если ваши инвентари находятся в отдельных папках (в моем случае).
Таким образом, эта роль выполняет две основные задачи:
- Все хеши, содержащиеся в rpi_files (yaml, json), объединяются глубоко и записываются во временную папку.
- Результат объединенных переменных загружается задачей 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