【问题标题】:How to use IF ELSE in YAML with variable如何在带有变量的 YAML 中使用 IF ELSE
【发布时间】:2021-04-28 19:14:58
【问题描述】:

我正在为 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

【问题讨论】:

  • moustache do not stack: "{{ package }}{{ '' if (version is not defined or version == 'latest') else '-' ~ version }}"

标签: ansible yaml


【解决方案1】:

使用下面的字符串替换你的: {{ '' if (version is not defined or version == 'latest') else '-' + version }}

注意,版本必须定义为字符串类型,否则需要添加字符串转换。

【讨论】:

猜你喜欢
  • 2023-01-05
  • 2022-07-08
  • 1970-01-01
  • 1970-01-01
  • 2018-02-11
  • 1970-01-01
  • 1970-01-01
  • 2016-06-03
  • 1970-01-01
相关资源
最近更新 更多