ansible - 变量类型列表中的条件
问题描述
我想在“列表”类型变量中添加某些行。我这样做
condition: 'true'
var_list:
- template: "{{ playbook_dir }}/file1.j2", dest_dir: "{{ docker_volume_basedir }}/file1.txt"
- template: "{{ playbook_dir }}/file2.j2", dest_dir: "{{ docker_volume_basedir }}/file2.txt"
{% if condition == 'true' %}
- template: "{{ playbook_dir }}/file3.j2", dest_dir: "{{ docker_volume_basedir }}/file3.txt"
{% endif %}
但我有一个很好的风格错误......
"message": "Syntax Error while loading YAML.\n found character '%' that cannot start any token
你有想法吗?
解决方案
问题是您在 vars 文件中使用模板化语法并且失败了。
例如,我能想到的一种方法是在运行时这样做
- hosts: all
vars:
default_list:
- template: "foo"
- template: "bar"
baz_list:
- template: "baz"
condition: false
tasks:
- name: append baz
set_fact:
default_list: "{{ default_list + baz_list }}"
when: condition
推荐阅读
- java - 在 Kotlin 中测试非空参数
- python - 转换 JSON 时出现 Python TypeError
- typescript - 计算对象中键名的联合类型,其值是可索引的
- vue.js - Vue:带有 Axios 的 JWT 授权标头
- c# - 如何在 google chrome 浏览器中获取打开的标签页的 URL
- javascript - Moment.format() 根据时区修改时间
- java - 如何在文本块中处理意图(Java 13)
- javascript - 如何在保持一个元素可见的同时在两个部分之间切换?
- c++ - 输出不是我想要的 C++
- javascript - 如何删除类中的 eventListener?