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 文件夹。如果您的清单放置在自己的文件夹中(在我的案例中)。

因此,这个角色主要有两个功能:

  1. 合并 rpi_files 中包含的所有哈希(yaml、json)并写入 tmp 文件夹。
  2. 使用 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
拥有者