【发布时间】:2020-03-27 17:52:03
【问题描述】:
我有以下带有嵌套字典的 vars.yml 文件:
hosts:
server_1:
apps:
- x1
- x2
- x3
- x4
- x5
storage:
-
-
cpu:
-
-
server_2:
apps:
- y1
- y2
- y3
- y4
- y5
storage:
-
-
cpu:
-
-
server_N:
apps:
- n1
- n2
- n3
- n4
- n5
我想在下面的示例剧本中使用它作为循环变量,以便在 dict 上多次执行任务:
- hosts: localhost
gather_facts: no
vars_files:
- vars.yml
tasks:
- name: Install apps
debug:
msg: "{{ item.value }}"
msg: "{{ item.value.apps }}"
with_dict: "{{ hosts }}"
我想将它们用作变量,并获得服务器和应用程序相关的结果循环迭代。
1. msg: "server_1"
msg: "x1"
2. msg: "server_1"
msg: "x2"
3. msg: "server_1"
msg: "x3"
....etc
6. msg: "server_2"
msg: "y1"
7. msg: "server_2"
msg: "y2"
....etc
我想你明白了。 此外,vars.yml 文件中有多少个“server_N”也无关紧要!
得到这个结果的最简单和正确的方法是什么?
【问题讨论】:
标签: ansible