gpt4 book ai didi

yaml - ansible with_items 列表列表正在变平

转载 作者:行者123 更新时间:2023-12-03 21:19:54 25 4
gpt4 key购买 nike

我正在尝试使用 ansible 遍历列表列表以安装一些软件包。但是 {{item}} 返回子列表中的每个元素,而不是子列表本身。我有一个来自外部 ansible list 列表的 yaml 文件,它看起来像这样:

---
modules:
- ['module','version','extra']
- ['module2','version','extra']
- ['module3','version','extra']

我的任务如下所示:
task:
- include_vars: /path/to/external/file.yml
- name: install modules
yum: name={{item.0}} state=installed
with_items: "{{ modules }}"

当我运行时,我得到:
fatal: [localhost]: FAILED! => {"failed": true, "msg": "ERROR! int object has no element 0"}

当我尝试:
- debug: msg="{{item}}"
with_items: "{{module}}"

它打印每个元素(模块、版本、额外等),而不仅仅是子列表(这是我所期望的)

最佳答案

解决此问题的另一种方法是使用复杂项目而不是列表列表。像这样构造变量:

- modules:
- {name: module1, version: version1, info: extra1}
- {name: module2, version: version2, info: extra2}
- {name: module3, version: version3, info: extra3}

然后你仍然可以使用 with_items , 像这样:
- name: Printing Stuffs...
shell: echo This is "{{ item.name }}", "{{ item.version }}" and "{{ item.info }}"
with_items: "{{modules}}"

关于yaml - ansible with_items 列表列表正在变平,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35662388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com