我的角色之一有两种不同的变量类型。一种是公开的(例如软件包版本和其他良性信息)。这些可以毫无顾虑地提交给 SCM。它还需要一些私人信息(如 API 密钥和其他秘密信息)。我ansible-vault
用来加密秘密信息。我的解决方案是vars/main.yaml
公开和vars/vault.yml
加密的私人信息。
我遇到了一个问题,我不确定这里的最佳实践或实际解决方案是什么。似乎 ansible 只加载vars/main.yml
文件。我自然不想加密公共信息,所以我寻找解决方案。到目前为止,我想出的唯一解决方案(在 IRC 上建议)是group_vars/all/vault.yml
使用角色名称创建所有变量并为其添加前缀。这是可行的,因为 ansible 似乎递归地加载了group_vars
. 这确实有效,但在组织上似乎不正确,因为变量是针对特定角色的,而不是“全局普遍正确的”。我也尝试投入include: vars/vault.yml
,vars/main.yml
但没有奏效。
有没有合适的方法来做到这一点?