当我在ansible中运行此代码时。
parent_dict = [{'nginx-1.13.2.tar.gz':'https://nginx.org/download/nginx-1.13.2.tar.gz'},{'zlib-1.2.11.tar.gz':'https://www.zlib.net/zlib-1.2.11.tar.gz'}]
{% for dict_item in parent_dict %}
{% for key, value in dict_item.items() %}
install-zlib:
cmd.run:
- name: |
cd /tmp
curl -L {{ value }} -o {{ key }}
tar xzf {{ key }}
rm -rf {{ key }}
- creates: /tmp/{{ key }}
{% endfor %}
{% endfor %}
答案 0 :(得分:1)
一些注意事项:
parent_dict
和{%
中没有包含对}%
的赋值。install-zlib
的整个块之前没有多余的2个空格的缩进,如果同一模板中的其他YAML内容具有不同的缩进,则可能使它成为无效的YAML。install-zlib
。您应该改为install-{{ key }}
。错误消息“此处不允许映射值”本身来自YAML解析器,通常表明您在意外的地方使用了冒号,我在这里看不到,但由于明显,情况可能是这样您并非只是将代码复制并粘贴到此处,否则由于以上#1问题,您将报告parent_dict
的其他错误未定义。