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

Ansible使用Extra Variable从Host Variable动态取值失败求助

Ansible动态获取组变量失败的解决方案

问题核心原因

你遇到的报错是因为在Jinja2表达式中错误嵌套了模板语法:groups['{{ deployment }}']。在已经被{{ }}包裹的表达式内部,不需要再用{{ }}来引用变量,直接使用变量名deployment即可。

修改后的Playbook

将Playbook中动态取值的行修正为以下写法:

---
- hosts: cluster_1
  tasks:
    - name: Set remote hosts for reindex 
      debug:
        # 硬编码写法(正常工作)
        msg: "hello from {{ ansible_hostname }} ['cluster_2']:['node1_ip'] {{ hostvars[groups['cluster_2'][0]].node1_ip }}"
        # 修正后的动态变量写法
        msg: "hello from {{ ansible_hostname }} ['{{ deployment }}']:['node1_ip'] {{ hostvars[groups[deployment][0]].node1_ip }}"

额外验证步骤

如果不确定变量是否正确传递,可以先添加一个debug任务确认deployment变量的值:

- name: Check deployment variable value
  debug:
    var: deployment

执行原命令后,就能正常通过deployment变量动态获取目标组的主机变量了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 09:05:21