community.sops.sops lookup – 读取 SOPS 加密的文件内容
注意
此 lookup 插件是 community.sops 集合 (版本 2.0.0) 的一部分。
如果您使用的是 ansible
软件包,则可能已安装此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install community.sops
。您需要其他要求才能使用此 lookup 插件,请参阅 需求 以了解详情。
要在 playbook 中使用它,请指定: community.sops.sops
。
community.sops 0.1.0 中的新增功能
概要
此 lookup 返回 Ansible 控制器文件系统上文件的内容。
此 lookup 需要
sops
可执行文件可在控制器的 PATH 中使用。
需求
以下需求是在执行此 lookup 的本地控制器节点上所需的。
必须存在一个二进制可执行文件
sops
(https://github.com/getsops/sops),它必须存在于PATH
中,或者配置为sops_binary
。
术语
参数 |
注释 |
---|---|
要读取的文件的路径。 |
关键字参数
这描述了 lookup 的关键字参数。这些是在以下示例中的值 key1=value1
、key2=value2
等:lookup('community.sops.sops', key1=value1, key2=value2, ...)
和 query('community.sops.sops', key1=value1, key2=value2, ...)
参数 |
注释 |
---|---|
一个或多个可用于解密加密文件的 age 私钥。 调用 SOPS 时,将设置为 需要 SOPS 3.7.1+。 配置
|
|
包含 SOPS 可用于解密加密文件的 age 私钥的文件。 调用 SOPS 时,将设置为 默认情况下,SOPS 在您的用户配置目录中查找 需要 SOPS 3.7.0+。 配置
|
|
用于向 AWS 发出请求的 AWS 访问密钥 ID。 为 SOPS 调用设置环境变量 配置
|
|
用于向 AWS 发出请求的 AWS 配置文件。 这对应于 SOPS 的 配置
|
|
用于向 AWS 发出请求的 AWS 密钥。 为 SOPS 调用设置环境变量 配置
|
|
用于向 AWS 发出请求的 AWS 会话令牌。 为 SOPS 调用设置环境变量 配置
|
|
对解析结果进行 Base64 编码。 如果您想在 Ansible 变量中存储二进制数据,请使用此选项。 选项
|
|
SOPS 配置文件的路径。 如果未设置,SOPS 将从加密或解密的文件开始递归搜索配置文件。 这对应于 SOPS 的 配置
|
|
设置为 选项
|
|
告诉 SOPS 使用本地密钥服务。 这对应于 SOPS 的 选项
配置
|
|
告诉 SOPS 从 JSON 或 YAML 文件中提取特定密钥。 需要一个字符串,其语法与 SOPS 的 注意:请适当地转义引号。 |
|
告诉 SOPS 如何解释加密文件。 默认情况下,SOPS 将根据文件扩展名选择输入类型。如果它检测到文件的类型错误,则可能导致解密失败。 自 community.sops 1.9.0 起,可以使用 选项
|
|
指定除本地密钥服务之外要使用的密钥服务。 密钥服务必须以 这对应于 SOPS 的 配置
|
|
告诉 SOPS 如何解释解密文件。 默认情况下,SOPS 将根据文件扩展名选择输出类型。如果它检测到文件的类型错误,则可能导致解密失败。 自 community.sops 1.9.0 起,可以使用 选项
|
|
是否删除尾随换行符和空格。 选项
|
|
SOPS 二进制文件的路径。 默认情况下使用 配置
|
注释
注意
当关键字参数和位置参数一起使用时,位置参数必须列在关键字参数之前:
lookup('community.sops.sops', term1, term2, key1=value1, key2=value2)
和query('community.sops.sops', term1, term2, key1=value1, key2=value2)
此查找不支持“通配符” - 请改用 ansible.builtin.fileglob 查找。
另请参阅
另请参阅
- community.sops.decrypt 过滤器插件
解密过滤器可用于解密 SOPS 加密的内存数据。
- community.sops.sops vars 插件
sops vars 插件可用于加载 SOPS 加密的宿主机或组变量。
- community.sops.load_vars
从文件中动态加载 SOPS 加密的变量,在任务中。
示例
- name: Output secrets to screen (BAD IDEA!)
ansible.builtin.debug:
msg: "Content: {{ lookup('community.sops.sops', item) }}"
loop:
- sops-encrypted-file.enc.yaml
- name: Add SSH private key
ansible.builtin.copy:
# Note that rstrip=false is necessary for some SSH versions to be able to use the key
content: "{{ lookup('community.sops.sops', user + '-id_rsa', rstrip=false) }}"
dest: /home/{{ user }}/.ssh/id_rsa
owner: "{{ user }}"
group: "{{ user }}"
mode: 0600
no_log: true # avoid content to be written to log
- name: The file file.json is a YAML file, which contains the encryption of binary data
ansible.builtin.debug:
msg: "Content: {{ lookup('community.sops.sops', 'file.json', input_type='yaml', output_type='binary') }}"
返回值
键 |
描述 |
---|---|
解密后的文件内容。 返回:成功 |