community.general.onepassword 查询 – 从 1Password 获取字段值

注意

此查询插件是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此查询插件,有关详细信息,请参阅 需求

要在 playbook 中使用它,请指定:community.general.onepassword

概要

需求

以下需求在执行此查询的本地控制器节点上是必需的。

术语

参数

注释

术语

列表 / 元素=字符串 / 必需

要检索的项目标识符(不区分大小写的 UUID 或名称)。

关键词参数

这描述了查询的关键词参数。这些是在以下示例中的值 key1=value1key2=value2 等:lookup('community.general.onepassword', key1=value1, key2=value2, ...)query('community.general.onepassword', key1=value1, key2=value2, ...)

参数

注释

account_id

字符串

在 community.general 7.5.0 中添加

要定位的帐户 ID。

connect_host

字符串

在 community.general 8.1.0 中添加

1Password Connect 的主机。必须与 connect_token 结合使用。

配置

connect_token

字符串

在 community.general 8.1.0 中添加

1Password Connect 的令牌。必须与 connect_host 结合使用。

配置

domain

字符串

在 community.general 3.2.0 中添加

1Password 的域名。

默认值: "1password.com"

field

字符串

从每个匹配项返回的字段(不区分大小写)。

默认值: "password"

master_password

别名:vault_password

字符串

用于解锁指定保管库的密码。

secret_key

字符串

执行初始登录时使用的密钥。

section

字符串

包含要检索的字段的项目部分(不区分大小写)。如果不存在,则将返回任何部分的第一个匹配项。

service_account_token

字符串

在 community.general 7.1.0 中添加

服务帐户的访问密钥。

仅适用于 1Password CLI 版本 2 或更高版本。

配置

subdomain

字符串

要针对其进行身份验证的 1Password 子域名。

username

字符串

用于登录的用户名。

vault

字符串

包含要检索的项目的保管库(不区分大小写)。如果不存在,则将搜索所有保管库。

备注

注意

  • 当同时使用关键词参数和位置参数时,位置参数必须列在关键词参数之前:lookup('community.general.onepassword', term1, term2, key1=value1, key2=value2)query('community.general.onepassword', term1, term2, key1=value1, key2=value2)

  • 此查找将使用现有的 1Password 会话(如果存在)。如果不存在,并且您已经执行了初始登录(意味着~/.op/config~/.config/op/config~/.config/.op/config存在),则只需要master_password。在此场景中,您可以选择指定subdomain,否则op将使用上次使用的子域名。

  • 此查找可以通过提供subdomainusernamesecret_keymaster_password来执行初始登录。

  • 可以通过提供account_id来定位特定帐户。

  • 由于这些凭据的非常敏感的性质,强烈建议您只在任何给定时间传递所需的最小凭据。此外,请使用强度等于或高于 1Password 主密码的密钥将这些凭据存储在 Ansible Vault 中。

  • 此查找将 1Password 中的潜在敏感数据存储为 Ansible 事实。如果启用缓存,则事实会受到缓存的影响,这意味着此数据可能以明文形式存储在磁盘或数据库中。

  • 已在 op 2.7.2 版本中测试。

示例

# These examples only work when already signed in to 1Password
- name: Retrieve password for KITT when already signed in to 1Password
  ansible.builtin.debug:
    var: lookup('community.general.onepassword', 'KITT')

- name: Retrieve password for Wintermute when already signed in to 1Password
  ansible.builtin.debug:
    var: lookup('community.general.onepassword', 'Tessier-Ashpool', section='Wintermute')

- name: Retrieve username for HAL when already signed in to 1Password
  ansible.builtin.debug:
    var: lookup('community.general.onepassword', 'HAL 9000', field='username', vault='Discovery')

- name: Retrieve password for HAL when not signed in to 1Password
  ansible.builtin.debug:
    var: lookup('community.general.onepassword',
                'HAL 9000',
                subdomain='Discovery',
                master_password=vault_master_password)

- name: Retrieve password for HAL when never signed in to 1Password
  ansible.builtin.debug:
    var: lookup('community.general.onepassword',
                'HAL 9000',
                subdomain='Discovery',
                master_password=vault_master_password,
                username='[email protected]',
                secret_key=vault_secret_key)

- name: Retrieve password from specific account
  ansible.builtin.debug:
    var: lookup('community.general.onepassword',
                'HAL 9000',
                account_id='abc123')

返回值

描述

返回值

列表 / 元素=字符串

请求的字段数据。

返回:成功

作者

  • Scott Buchanan (@scottsb)

  • Andrew Zenk (@azenk)

  • Sam Doran (@samdoran)

提示

每个条目类型的配置条目具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖较高的变量。