【发布时间】:2019-05-09 13:58:40
【问题描述】:
为了使我们的某些网络环境自动化,我想知道如何循环嵌套列表中的不同项目。为了更清楚起见,我将解释我想使用我现有的库存和剧本做什么。
库存如下所示,(虚拟内容)
parameters:
- mode: ""
speed: ""
duplex: ""
interfaces:
- Int_One
- Int_Two
如您所见,我有一个包含一些网络信息(参数)的列表和另一个包含两个接口的列表。我想在我的剧本中完成的操作是使用“参数”列表中的信息配置这两个接口。换句话说,使用“参数”列表中的信息循环遍历“接口”。但截至目前,我无法让它在正确的时间使用正确的数据
很高兴知道我在我的剧本中使用了预定义的“思科网络模块”。
Playbook 如下所示,
- name: Deploy Network Interfaces
"Some network module":
mode: '{{ item.0.mode }}'
speed: '{{ item.0.speed }}'
duplex: '{{ item.0.duplex }}'
interface: '{{ item.1.interfaces }}'
state: present
delegate_to: localhost
loop:
- "{{ parameters }}"
- "{{ parameters|subelements('interfaces') }}"
如您所见,网络模块需要提供“接口”。所以我想再次迭代“接口”列表并使用“参数”列表中定义的数据部署它们。
谁能告诉我如何处理这个问题?
提前致谢!
【问题讨论】:
-
没有“parameters.interfaces”。变量“interfaces”是独立的。这是缩进的错误吗?
标签: ansible yaml nested-loops ansible-inventory