Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops Ansible;使用循环遍历变量_Loops_Ansible_Ansible Inventory - Fatal编程技术网

Loops Ansible;使用循环遍历变量

Loops Ansible;使用循环遍历变量,loops,ansible,ansible-inventory,Loops,Ansible,Ansible Inventory,我有一个清单,其中设置了许多主机变量。每个主机将包含不同数量的数据集 e、 g 我可以创建一个循环来计算数据集,但我似乎无法使用它来引用[varX]: - name: "test loop" debug: msg: - "{{ item }}" - "{{ 'datasets.set' + item + '.var1' }}" - "{{ datasets.set1.var1 }}" loop: "{{ query

我有一个清单,其中设置了许多主机变量。每个主机将包含不同数量的数据集

e、 g

我可以创建一个循环来计算数据集,但我似乎无法使用它来引用[varX]:

 - name: "test loop"
   debug:
     msg: 
         - "{{ item }}"
         - "{{ 'datasets.set' + item + '.var1' }}"
         - "{{ datasets.set1.var1 }}"
    loop: "{{ query('sequence', 'start=1 end='+((datasets|length)|string)) }}"
这似乎组合了我试图引用的变量名,但是没有返回与之关联的值。手动调用该变量会返回感兴趣的值

ok: [host1] => (item=1) => {
    "msg": [
        "1",
        "datasets.set1.var1",
        "east"
    ]
}
ok: [host1] => (item=2) => {
    "msg": [
        "2",
        "datasets.set2.var1",
        "east"
    ]
}
我所做的是可能的,还是应该从另一个角度来看待它

提前感谢。

完成任务

    - debug:
        msg: "set{{ item }}.var1 = {{ datasets['set' ~ item].var1 }}"
      loop: "{{ range(1, datasets|length+1)|list }}"
给予

任务

    - debug:
        msg: "set{{ item }}.var1 = {{ datasets['set' ~ item].var1 }}"
      loop: "{{ range(1, datasets|length+1)|list }}"
给予

    "msg": "set1.var1 = east"
    "msg": "set2.var1 = north"