community.sops.sops 查找 – 读取 SOPS 加密文件内容
注意
此查找插件是 community.sops 集合(版本 2.0.0)的一部分。
如果您正在使用 ansible
包,您可能已经安装了这个集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.sops
。您需要其他要求才能使用此查找插件,请参阅 要求 了解详细信息。
要在 playbook 中使用它,请指定:community.sops.sops
。
community.sops 0.1.0 中的新增功能
概要
此查找从 Ansible 控制器的文件系统上的文件中返回内容。
此查找需要
sops
可执行文件在控制器 PATH 中可用。
要求
以下要求需要在执行此查找的本地控制器节点上满足。
二进制可执行文件
sops
(https://github.com/getsops/sops)必须存在于PATH
中,或配置为sops_binary
。
术语
参数 |
注释 |
---|---|
要读取的文件的路径。 |
关键字参数
这描述了查找的关键字参数。这些值是以下示例中的 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)
此查找不支持“globbing” - 请改用 ansible.builtin.fileglob 查找。
另请参阅
另请参阅
- community.sops.decrypt 过滤器插件
解密过滤器可用于解密 SOPS 加密的内存中数据。
- community.sops.sops 变量插件
sops 变量插件可用于加载 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') }}"
返回值
键 |
描述 |
---|---|
解密的文件内容。 已返回: 成功 |