Ansible
对应的官方文档地址
Bitwarden 提供了与 Ansible 的集成,可以从 Secrets Manager 中获取机密并将其注入到 Ansible playbook 中。lookup 插件会将检索到的机密作为隐藏的环境变量注入 Ansible playbook 中。设置集合的方法如下:
要求
我们建议在 Python 虚拟环境中安装 Python 包。
您系统上已安装的 Ansible 的当前版本。
Bitwarden 机密管理器与一个活动的服务账户。
在设置 Ansible 集合之前,我们建议您同时打开 Secrets Manager,以方便访问您的访问令牌以及您希望包含在设置中的任何机密。
安装 Bitwarden Ansible 集合
以下指南是使用 Linux 机器设置 Bitwarden 集合的示例。
1、安装 Bitwarden SDK:
2、安装 bitwarden.secrets 集合:
现在 Ansible 集合已安装好,我们可以使用 bitwarden.secrets.lookup
从 Ansible playbook 中开始调用 Bitwarden 机密。以下部分将包含用于演示此过程的的示例。
macOS 用户可能需要在 shell 中设置以下环境变量,以避免来自上游的 Ansible 故障。
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
获取 Bitwarden 机密
要从您的 playbook 中获取 Secrets Manager 中的机密,有两种方法:
将访问令牌保存为环境变量
使用 Secrets Manager,我们可以将访问令牌安全地设置为 shell 中的环境变量,并使用 playbook 来检索机密。要验证访问令牌:
1、在 shell 中运行以下命令来设置您的访问令牌环境变量:
2、现在环境变量已经设置好,我们可以使用 lookup 插件来填充 playbook 中的变量。例如:
通过将 BWS_ACCESS_TOKEN
设置为环境变量,可以在 playbook 中引用访问令牌,而无需包含原始访问令牌值。
在 playbook 中提供访问令牌
Secrets Manager 访问令牌也可以在 playbook 中被引用。这种方法不需要在您的 shell 中使用环境变量 BWS_ACCESS_TOKEN
,但访问令牌的值将存储在 playbook 中。
1、访问令牌可以包含在 playbook 中,示例如下:
使用此方法,可以在单个 playbook 中引用多个访问令牌。
从不同的服务器检索机密
Bitwarden 自托管用户可以通过包含 base_url,
api_url
和 identity_url
从他们的 Bitwarden 服务器中检索机密:
playbook 示例
以下是一个具有多个配置选项的 playbook 文件的示例。
在上面的示例中,CUSTOM_ACCESS_TOKEN_VAR
演示了您可以包含多个不同的访问令牌。这些令牌不必是硬编码的,可以安全地提供给您的 playbook。
变量 | 附加信息 |
---|---|
| 查找访问令牌 |
| 一个可以缓存您的身份验证状态的目录。 |
| 您希望查找的机密 ID。 |
| 查找一个机密值然后将其存储为名为 |
| 查找一个带有附加字段输出的机密。在这个例子中,查找将返回机密的 |
| 查找一个在请求中包含访问令牌值的机密。 |
| 查找一个在请求中包含预配置状态文件的机密。 |
附加请求和字段
除了 secret_id
字段之外, bitwarden.secrets.lookup
中还可以包含其他好几个字段。以下 JSON 对象包含了在 playbook lookup 中可以引用的所有字段。
要检索额外的字段,例如 "note"
,可以将以下命令添加到 playbook 中:
最后更新于