eugene0707.merge_custom_vars
合并自定义变量
加载具有可定制优先级的变量文件,并对其中的哈希进行深度合并。 默认情况下,从 playbook 中包含的角色的 rpi_vars 文件夹加载变量文件,playbook 目录中的 rpi_vars 将覆盖它,而优先级最高的是清单的 rpi_vars。 您可以设置自己的变量文件/文件夹列表以进行合并及其优先级。
要求
没有特殊要求。
角色变量
rpi_dir: 要合并的变量文件夹名称。默认值是 rpi_vars。
rpi_files: 要合并的变量文件或文件夹。数组中的元素顺序表示它们的优先级。 默认:
- "{{ rpi_role_dirs }}" # 从 playbook 中包含的角色的 rpi_vars 文件夹。角色可以放在 playbook 里(本地),或放在 roles_path 配置变量定义的其他地方(在我的案例中是 "共享")。
- "{{ rpi_playbook_dirs }}" # playbook 中的 rpi_vars 文件夹
- "{{ rpi_inventory_dirs }}" # 清单文件夹中的 rpi_vars 文件夹。如果您的清单放置在自己的文件夹中(在我的案例中)。
因此,这个角色主要有两个功能:
- 合并 rpi_files 中包含的所有哈希(yaml、json)并写入 tmp 文件夹。
- 使用 include_vars 任务加载合并后的 yml 结果。
依赖关系
Ansible 2+
示例 Playbook
这个角色的主要概念除了合并哈希之外,是创建可以跨角色使用的公共变量,更精确地在 playbook 和清单层面使用。 如果您使用此角色,请在 playbook 中将其放在第一位置。
虽然我尚未弄明白如何从自定义模块获取密码,但可以通过查找插件将加密变量导入合并“篮子”,例如:
---
secret:
key: "{{ lookup('file', '{{ playbook_dir }}/files/vault.encrypted.key.txt') }}"
许可证
GPLv2
作者信息
Evgeniy Kondrashov https://github.com/eugene0707
关于项目
Load vars files with customizable precedence and deep merge hashes within.
安装
ansible-galaxy install eugene0707.merge_custom_vars
许可证
Unknown
下载
120
拥有者