Bitwarden 帮助中心中文版
⮐ Bitwarden Help Center个人主页联系我
  • 关于
  • 首页
  • 发布记录
  • 账户
    • 创建 Bitwarden 账户
    • 登录 & 解锁
      • 主密码
      • 忘记主密码
      • 新设备登录保护
      • 使用 SSO 登录
      • 使用设备登录
      • 使用通行密钥登录 (Beta)
      • 账户切换
      • 使用 PIN 码解锁
      • 使用生物识别解锁
      • 密码库超时选项
    • 两步登录
      • 两步登录现场指南
      • 两步登录方式
      • 设置指南
        • 两步登录 - 验证器
        • 两步登录 - 电子邮箱
        • 两步登录 - Duo
        • 两步登录 - YubiKey
        • 两步登录 - 通行密钥
      • 恢复代码
      • 丢失了辅助设备
      • 两步登录 FAQ
    • 更多
      • 紧急访问
      • 本地化
      • *异常流量错误
  • Password Manager
    • Password Manager 概述
    • 入门
      • Password Manager 网页 App
      • Password Manager 浏览器扩展
      • Password Manager 移动 App
      • Password Manager 桌面 App
    • 密码库基础
      • 密码库项目
      • 用户名 & 密码生成器
      • 自定义字段
      • 集成的验证器
      • 文件附件
      • 共享
      • 集合
      • 存储通行密钥
      • *通行密钥 FAQ
    • 密码库管理
      • 文件夹
      • 收藏
      • 同步密码库
      • 检索密码库
      • 密码库健康报告
    • 导入 & 导出
      • 导入数据到密码库
      • 导入指南
        • 从 LastPass 导入
        • 从 1Password 导入
        • 从 Keeper 导入
        • 从 Dashlane 导入
        • 从 Google Chrome 导入
        • 从 macOS & Safari 导入
        • 从 Firefox 导入
        • 从 Password Safe 导入
        • 从 Myki 导入
      • 导出密码库数据
      • 加密导出
      • 调整 Bitwarden .csv 或 .json
      • *Bitwarden 导入器工具
      • 导入 & 导出 FAQ
    • 自动填充
      • 自动填充基础
        • 在浏览器扩展中自动填充登录
        • 在 Android 上自动填充登录
        • 在 iOS 上自动填充登录
        • 自动填充支付卡和身份
        • 自动填充自定义字段
      • 使用 URI
      • 屏蔽自动填充
      • 基本验证提示
      • 键盘快捷键
      • 禁用浏览器的内置密码管理器
      • Android 自动填充故障排除
      • 自动填充 FAQ
    • Bitwarden Send
      • 关于 Send
      • 创建 Send
      • 接收 Send
      • Send 生命周期
      • Send 隐私
      • CLI 上的 Send
      • Send 加密
      • Send FAQ
    • 开发者工具
      • Password Manager API
      • Password Manager CLI
      • CLI 身份验证挑战
      • 用于 CLI 验证的个人 API 密钥
      • SSH 代理
    • 更多
      • Password Manager FAQ
      • 更改 App 主题
      • DuckDuckGo macOS 浏览器集成
      • Apple Watch 上的 Bitwarden
      • 在 Firefox 隐私窗口中使用 Bitwarden
      • 离线使用 Bitwarden
      • 排除域名
      • Safari 网页扩展
      • uMatrix 和 NoScript 访问规则
      • 与 Bitwarden 支持排除移动端故障
  • Bitwarden Authenticator
    • Bitwarden Authenticator
    • 导入 & 导出
    • FAQ
  • Secrets Manager
    • Secrets Manager 概述
    • 入门
      • Secrets Manager 快速入门
      • 开发人员快速入门
      • 登录 Secrets Manager
      • 管理您的组织
    • 您的机密
      • 工程
      • 机密
      • 机器账户
      • 访问令牌
      • 机密解密
    • 导入 & 导出
      • 导入数据
      • 导出数据
    • 开发人员工具
      • Secrets Manager CLI
      • Secrets Manager SDK
    • 集成
      • Ansible
      • GitHub Actions
      • GitLab CI/CD
      • Secrets Manager Kubernetes Operator
    • 更多
      • Secrets Manager FAQ
  • 管理控制台
    • 组织快速入门
    • 组织基础
      • 组织
      • 集合
      • 群组
      • 企业策略
      • 集合管理
    • 用户管理
      • 用户管理
      • 成员角色和权限
      • 声明域名
      • 声明账户
      • 账户恢复
      • SCIM
        • 关于 SCIM
        • JumpCloud SCIM 集成
        • Microsoft Entra ID SCIM 集成
        • Okta SCIM 集成
        • OneLogin SCIM 集成
        • Ping Identity SCIM 集成
      • 目录连接器
        • 关于目录连接器
        • 目录连接器桌面 App
        • 目录连接器 CLI
        • 目录连接器文件存储
        • 同步选项和筛选器
        • 清除同步缓存
        • 调度同步
        • 使用 AD 或 LDAP 同步
        • 使用 Microsoft Entra ID 同步
        • 使用 Google Workspace 同步
        • 使用 Okta 同步
        • 使用 OneLogin 同步
      • 入职和继任概述
    • 导入 & 导出
      • 导入数据到组织
      • 导出密码库数据
      • 调整 Bitwarden .csv 或 .json
    • SSO 登录
      • 关于 SSO 登录
      • SAML 2.0 配置
      • OIDC 配置
      • 成员解密选项
      • 声明域名
      • 实施指南
        • ADFS SAML 实施
        • Auth0 SAML 实施
        • AWS SAML 实施
        • Duo SAML 实施
        • Google SAML 实施
        • JumpCloud SAML 实施
        • Keycloak SAML 实施
        • Microsoft Entra ID SAML 实施
        • Okta SAML 实施
        • OneLogin SAML 实施
        • Ping Identity SAML 实施
        • ADFS OIDC 实施
        • Microsoft Entra ID OIDC 实施
        • Okta OIDC 实施
        • Ping Identity OIDC 实施
        • Cloudflare Zero Trust SSO 实施
      • 受信任设备
        • 关于受信任设备
        • 设置受信任设备 SSO
        • 添加受信任设备
        • 批准受信任设备
      • Key Connector
        • 关于 Key Connector
        • 部署 Key Connector
      • *在您的 IdP 上配置 Bitwarden(SAML 2.0)
      • SSO 登录 FAQ
    • 报告
      • 密码库健康报告
      • 事件日志
      • Elastic SIEM
      • Microsoft Sentinel SIEM
      • Panther SIEM
      • Rapid7 SIEM
      • Splunk SIEM
    • 最终用户入职
      • 关于本章节
      • 欢迎电子邮件模板
      • 管理团队入职电子邮件
      • 最终用户采用电子邮件
      • 客户激活套件
      • 入职流程
    • 部署客户端 App
      • 部署浏览器扩展
        • 使用 GPO、Linux 策略和 .plist 文件部署浏览器扩展
        • 使用 Intune 部署浏览器扩展
      • 部署桌面端 App
        • 使用 Intune 部署桌面端 App
      • 部署移动端 App
        • 使用 Intune 部署移动端 App
      • 为您的服务器配置客户端
      • 使用设备管理停用浏览器密码管理器
    • Bitwarden 公共 API
    • 更多
      • 组织 FAQ
      • 链接到项目
      • 企业版 Bitwarden 功能数据表
      • 团队版和企业版迁移指南
      • LastPass 企业版迁移指南
      • 组织所有者离职时的访问权限管理
      • PoC 项目清单
      • 为生产准备试用组织
      • *团队版 Bitwarden 对比指南
  • 提供商门户
    • 提供商门户概览
    • 提供商门户快速入门
    • 提供商用户
    • 添加客户组织
    • *添加现有组织
    • 持续管理
    • 取消链接客户组织
    • 提供商事件日志
    • 提供商计费
    • 提供商 FAQ
    • 业务单元门户
      • 业务单元门户
      • 业务单元门户快速入门
  • 自托管
    • 安装 & 部署指南
      • Docker
        • Linux 标准部署
        • Linux 手动部署
        • Linux 离线部署
        • Windows 标准部署
        • Windows 离线部署
        • Unified 部署 (Beta)
      • Helm
        • 使用 Helm 自托管
        • Azure AKS 部署
        • OpenShift 部署
        • AWS EKS 部署
        • 添加 rawManifest 文件
    • 自托管组织
    • 迁移步骤
    • 证书选项
    • 配置环境变量
    • 数据库选项
    • 连接到外部 MSSQL 数据库
    • Kerberos 集成
    • 更新实例
    • 备份托管数据
    • 付费功能许可证
    • 系统管理员门户
    • 为服务器配置客户端
    • 连接客户端到实例
    • 自托管 SCIM
    • 自托管家庭赞助
    • 自托管 Send
    • 配置推送中继
    • *作为 MSP 部署 Bitwarden
    • 托管 FAQ
  • 安全
    • Bitwarden 安全白皮书
    • 密码库数据
    • 管理数据
    • 加密方式
    • KDF 算法
    • 账户加密密钥
    • 账户指纹短语
    • 数据存储
    • 合规、审计和认证
    • 服务器地理位置
    • 版本控制
    • 使用网站图标时的隐私
    • Bitwarden 软件发布支持
    • Bitwarden 的分包商
    • 来自 Bitwarden 的电子邮件
    • Bitwarden 地址
    • 安全 FAQ
  • 计划和定价
    • Password Manager
      • Password Manager 计划
      • 从个人升级到组织
      • 兑换家庭赞助
      • 高级会员续费
    • Secrets Manager
      • Secrets Manager 计划
      • 注册 Secrets Manager
    • Bitwarden 经销商
    • 开始企业版试用
    • 组织续费
    • 更新计费信息
    • 税费计算
    • 删除账户或组织
    • 取消订阅
    • 计费 FAQ
    • *更新 Bitwarden 计划 (2019-2020)
    • *更新 Password Manager 计划 & 订阅
    • *哪种计划适合我?
  • 学习中心
    • 关于学习中心
    • 使用 Bitwarden 的第一步
    • 了解 Password Manager
    • Password Manager
      • Bitwarden 入门:个人用户
      • Bitwarden 入门:管理员
      • Bitwarden 入门:成员
      • Bitwarden 入门:经销商或 MSP
    • Bitwarden 高级用户
    • 面向企业管理员的 Bitwarden
    • 了解 Secrets Manager
    • 面向 MSP 的 Bitwarden
    • 了解 Passwordless.dev
  • *杂项
    • 11 月弃用通知
    • Bitwarden 术语表
    • 迁移脚本
    • Bitwarden 101 视频系列-入门
    • Secrets Manager Beta 版注册
    • 未分配的密码库项目已移至管理控制台
    • 原生移动 App
  • 附录
    • 翻译约定
    • 资源
由 GitBook 提供支持
在本页
  • 要求
  • 安装 Bitwarden Ansible 集合
  • 获取 Bitwarden 机密
  • 将访问令牌保存为环境变量
  • 在 playbook 中提供访问令牌
  • 从不同的服务器获取机密
  • playbook 示例
  • 附加请求和字段
  1. Secrets Manager
  2. 集成

Ansible

上一页集成下一页GitHub Actions

最后更新于1个月前

对应的

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

要求

  • 我们建议在 中安装 Python 包。

  • 您系统上已安装了 Ansible 的当前版本。

  • 具有的 Bitwarden Secrets Manager。

在设置 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 中设置以下环境变量,以避免来自。

  • export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

获取 Bitwarden 机密

要从您的 playbook 中获取 Secrets Manager 中的机密,有两种方法:

将访问令牌保存为环境变量

1、在 shell 中运行以下命令来设置您的访问令牌环境变量:

export BWS_ACCESS_TOKEN=<ACCESS_TOKEN_VALUE>

2、现在环境变量已经设置好,我们可以使用 lookup 插件来填充 playbook 中的变量。例如:

  vars:
        database_password: "{{ lookup('bitwarden.secrets.lookup', '<SECRET_ID>') }}" 

通过将 BWS_ACCESS_TOKEN 设置为环境变量,可以在 playbook 中引用访问令牌,而无需包含原始访问令牌值。

在 playbook 中提供访问令牌

Secrets Manager 访问令牌也可以在 playbook 中被引用。这种方法不需要在您的 shell 中使用环境变量 BWS_ACCESS_TOKEN ,但访问令牌的值将存储在 playbook 中。

1、访问令牌可以包含在 playbook 中,示例如下:

vars:
    password_with_a_different_access_token: "{{ lookup('bitwarden.secrets.lookup', '<SECRET_ID_VALUE>', 
access_token='<ACCESS_TOKEN_VALUE>') }}"     

使用此方法,可以在单个 playbook 中引用多个访问令牌。

从不同的服务器获取机密

Bitwarden 自托管用户可以通过包含 base_url, api_url 和 identity_url 从他们的 Bitwarden 服务器中获取机密:

vars:
    secret_from_other_server: "{{ lookup('bitwarden.secrets.lookup', '<SECRET_ID>', base_url='https://bitwarden.example.com' ) }}"
    secret_advanced: >-
      {{ lookup('bitwarden.secrets.lookup', '<SECRET_ID>',
        api_url='https://bitwarden.example.com/api',
        identity_url='https://bitwarden.example.com/identity' ) }}

playbook 示例

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

---
- name: Using secrets from Bitwarden

  vars:
    bws_access_token: "{{ lookup('env', 'CUSTOM_ACCESS_TOKEN_VAR') }}"
    state_file_dir: "{{ '~/.config/bitwarden-sm' | expanduser }}"
    secret_id: "9165d7a8-2c22-476e-8add-b0d50162c5cc"

    secret: "{{ lookup('bitwarden.secrets.lookup', secret_id) }}"
    secret_with_field: "{{ lookup('bitwarden.secrets.lookup', secret_id, field='note' ) }}"
    secret_with_access_token: "{{ lookup('bitwarden.secrets.lookup', secret_id, access_token=bws_access_token ) }}"
    secret_with_state_file: "{{ lookup('bitwarden.secrets.lookup', secret_id, state_file_dir=state_file_dir ) }}"

  tasks:
    - name: Use the secret in a task
      include_tasks: tasks/add_db_user.yml # reference the secrets with "{{ secret }}", "{{ secret_with_field }}", etc.

在上面的示例中,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 中可以引用的所有字段。

{
  "id": "be8e0ad8-d545-4017-a55a-b02f014d4158",
  "organizationId": "10e8cbfa-7bd2-4361-bd6f-b02e013f9c41",
  "projectId": "e325ea69-a3ab-4dff-836f-b02e013fe530",
  "key": "SES_KEY",
  "value": "0.982492bc-7f37-4475-9e60",
  "note": "",
  "creationDate": "2023-06-28T20:13:20.643567Z",
  "revisionDate": "2023-06-28T20:13:20.643567Z"
}

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

  vars:
        database_password: "{{ lookup('bitwarden.secrets.lookup', '0037ed90-efbb-4d59-a798-b103012487a0', field='note') }}"

使用 Secrets Manager,我们可以将访问令牌安全地设置为 shell 中的环境变量,并使用 playbook 来检索机密。要:

官方文档地址
Python 虚拟环境
上游的 Ansible 故障
验证访问令牌
活动的机器账户