You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在自定义Ansible插件中访问Playbook声明的变量?

Ansible自定义Action插件访问Playbook变量的方法

在自定义Action插件的run方法中,task_vars参数就是存储所有可用变量的字典,直接通过键名就能获取Playbook里定义的变量。

实现示例

1. Playbook代码

---
- hosts: all

  tasks:
  - name: "Set facts"
    set_fact:
      gate_enabled: "True"
  - name: 调用自定义Action插件
    custom_plugin_name:

2. 插件代码

class ActionModule(ActionBase):
    def run(self, tmp=None, task_vars=None):
        # 直接从task_vars字典中获取变量
        gate_enabled = task_vars.get('gate_enabled')
        # 后续可基于该变量做逻辑处理
        result = super(ActionModule, self).run(tmp, task_vars)
        result['gate_enabled_value'] = gate_enabled
        return result

补充说明

  • task_vars包含当前任务可用的所有变量:涵盖Playbook中定义的facts、host_vars、group_vars、set_fact设置的变量等。
  • 推荐使用dict.get()方法获取变量,避免变量不存在时抛出KeyError异常。

内容的提问来源于stack exchange,提问作者Manas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:15:31