如何在带有变量的 YAML 中使用 IF ELSE?
How to use IF ELSE in YAML with variable?
我正在使用 Ansible Tower 的 YAML 文件,其中包含以下信息
- name: "Package Deployment"
block:
- name: "Update package {{ package }}"
yum:
update_cache: True
update_only: True
name: "{{ package }}{{ '' if (version is not defined or version == 'latest') else '-{{ version }}' }}"
state: "{{ state|default('latest' if version == 'latest' else 'present') }}"
become: true
当我传递 YAML 变量时
package: package
version: latest
然后它打印 package
但如果我将 YAML 变量传递为
package: package
version: 22
然后打印 package-{{ version }}
而不是 package-22
。
使用下面的字符串替换您的:
{{ '' if (version is not defined or version == 'latest') else '-' + version }}
注意version必须定义为string类型,否则需要添加string cast。
我正在使用 Ansible Tower 的 YAML 文件,其中包含以下信息
- name: "Package Deployment"
block:
- name: "Update package {{ package }}"
yum:
update_cache: True
update_only: True
name: "{{ package }}{{ '' if (version is not defined or version == 'latest') else '-{{ version }}' }}"
state: "{{ state|default('latest' if version == 'latest' else 'present') }}"
become: true
当我传递 YAML 变量时
package: package
version: latest
然后它打印 package
但如果我将 YAML 变量传递为
package: package
version: 22
然后打印 package-{{ version }}
而不是 package-22
。
使用下面的字符串替换您的:
{{ '' if (version is not defined or version == 'latest') else '-' + version }}
注意version必须定义为string类型,否则需要添加string cast。