community.sops.load_vars 模块 – 从文件中动态加载 SOPS 加密变量,在任务中执行
注意
此模块是 community.sops 集合(版本 2.0.0)的一部分。
如果您使用的是 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.sops
。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。
要在 playbook 中使用它,请指定:community.sops.load_vars
。
community.sops 0.1.0 中的新功能
概要
在任务运行时期间从文件中动态加载 SOPS 加密的 YAML/JSON 变量。
要将包含的变量分配给除
inventory_hostname
之外的其他主机,请使用delegate_to
并设置delegate_facts=true
。
注意
此模块具有相应的 操作插件。
要求
执行此模块的主机需要满足以下要求。
二进制可执行文件
sops
(https://github.com/getsops/sops) 必须存在于PATH
中,或者配置为sops_binary
。
参数
参数 |
注释 |
---|---|
一个或多个可用于解密加密文件的 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 调用设置环境变量 |
|
SOPS 配置文件的路径。 如果未设置,SOPS 将从加密或解密的文件开始递归搜索配置文件。 这对应于 SOPS |
|
告诉 SOPS 使用本地密钥服务。 这对应于 SOPS 选项
|
|
此选项控制如何处理加载文件中值的 Jinja2 表达式。 如果设置为 如果设置为 遗憾的是,非核心模块无法以“不安全”方式处理表达式,换句话说,只能在使用时评估它们。这只能通过 ansible.builtin.include_vars 实现,但它很遗憾无法处理 SOPS 加密文件。 选项
|
|
应从中加载变量的文件名。 如果路径是相对路径,它将在角色的 |
|
指定在本地服务之外使用的密钥服务。 密钥服务必须以 这对应于 SOPS 的 |
|
用于存储包含变量的变量名。 如果省略( |
|
SOPS 二进制文件的路径。 默认使用 |
属性
属性 |
支持 |
描述 |
---|---|---|
支持: 完全支持 |
表明它有一个对应的 action 插件,因此可以在控制器上执行部分选项。 |
|
支持: 不支持 此操作完全在控制器上运行。 |
支持与 |
|
支持: 完全支持 |
可以在 |
|
支持: 不适用 此操作不修改状态。 |
在 diff 模式下运行时,将返回有关已更改(或可能需要在 |
|
支持: 完全支持 |
Action 返回一个 |
另请参阅
另请参阅
- ansible.builtin.set_fact
设置主机变量和事实。
- ansible.builtin.include_vars
从文件中动态加载变量到任务中。
- 控制任务运行位置:委托和本地操作
有关任务委托的更多信息。
- community.sops.sops lookup 插件
sops lookup 可以用来解密 SOPS 加密的文件。
- community.sops.decrypt filter 插件
decrypt filter 可以用于解密 SOPS 加密的内存数据。
- community.sops.sops vars 插件
sops vars 插件可以用来加载 SOPS 加密的主机或组变量。
示例
- name: Include variables of stuff.sops.yaml into the 'stuff' variable
community.sops.load_vars:
file: stuff.sops.yaml
name: stuff
expressions: evaluate-on-load # interpret Jinja2 expressions in stuf.sops.yaml on load-time!
- name: Conditionally decide to load in variables into 'plans' when x is 0, otherwise do not
community.sops.load_vars:
file: contingency_plan.sops.yaml
name: plans
expressions: ignore # do not interpret possible Jinja2 expressions
when: x == 0
- name: Load variables into the global namespace
community.sops.load_vars:
file: contingency_plan.sops.yaml
返回值
常见的返回值记录在这里,以下是此模块独有的字段
键 |
描述 |
---|---|
成功包含的文件列表 已返回: 成功 示例: |