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

如何在Ansible Playbook中将变量值作为索引传递使用

Ansible Playbook 变量作为索引取值方案

可以实现,你原写法的问题在于违反了Jinja2语法规则:不能在已经被{{ }}包裹的Jinja2表达式内部,再次嵌套{{ }}调用变量,直接在表达式内部写变量名即可。

基础修正写法

- hosts:
  vars:
    var1: 2
    var2: "{{ data[var1] }}"

完整可运行测试用例(列表索引场景)

- name: 变量作为列表索引测试
  hosts: localhost
  gather_facts: false
  vars:
    var1: 2
    # 测试用列表数据
    data:
      - 索引0对应内容
      - 索引1对应内容
      - 索引2对应内容
    var2: "{{ data[var1] }}"
  tasks:
    - debug:
        msg: "通过变量索引取到的值为:{{ var2 }}"

运行后debug输出结果为通过变量索引取到的值为:索引2对应内容。

字典索引场景扩展

如果data是字典结构,变量存储字典的键,写法完全一致:

vars:
  # 变量存字典键名
  var1: "user_name"
  data:
    user_name: "运维人员"
    role: "admin"
  var2: "{{ data[var1] }}"

如果需要拼接生成键名,使用Jinja2字符串拼接符~即可,示例:

# 取data中的key_2对应的值
var2: "{{ data['key_' ~ var1] }}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:24:06