Ansible

Bitwarden 提供与 Ansible 的集成,以从 Secrets Manager 中获取机密并将其注入到您的 Ansible playbook 中。lookup 插件会将获取到的机密作为隐藏的环境变量注入到 Ansible playbook 中。要设置集合:

要求

在设置 Ansible 集合之前,我们建议您同时打开 Secrets Manager,以方便访问您的访问令牌以及您希望包含在设置中的任何机密。

安装 Bitwarden Ansible 集合

以下指南是使用 Linux 机器设置 Bitwarden 集合的示例。

1、安装 Bitwarden SDK:

pip install bitwarden-sdk

2、安装 bitwarden.secrets 集合:

ansible-galaxy collection install 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_urlidentity_url 从他们的 Bitwarden 服务器中获取机密:

playbook 示例

以下是一个具有多个配置选项的 playbook 文件的示例。

在上面的示例中,CUSTOM_ACCESS_TOKEN_VAR 演示了您可以包含多个不同的访问令牌。这些令牌不必是硬编码的,可以安全地提供给您的 playbook。

变量
附加信息

bws_access_token

查找访问令牌 env 变量。

state_file_dir

一个可以缓存您的身份验证状态的目录。

secret_id

您希望查找的机密 ID。

secret

查找一个机密值然后将其存储为名为 "secret" 的变量。

secret_with_field

查找一个带有附加字段输出的机密。在这个例子中,查找将返回机密的 'note' 值。

secret_with_access_token

查找一个在请求中包含访问令牌值的机密。

secret_with_state_file

查找一个在请求中包含预配置状态文件的机密。

附加请求和字段

除了 secret_id 字段之外, bitwarden.secrets.lookup 中还可以包含其他好几个字段。以下 JSON 对象包含了在 playbook lookup 中可以引用的所有字段。

要获取额外的字段,例如 "note" ,可以将以下命令添加到 playbook 中:

最后更新于