如何在 YAML 中使用 IF ELSE 和变量?

2024-04-08

我正在使用 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 }}

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 YAML 中使用 IF ELSE 和变量? 的相关文章

随机推荐

  • 为 Atom feed 创建 XSL

    我正在创建一个小的自定义 XSL 文件来呈现 RSS 提要 内容是基本的 如下 除非源 XML 在提要定义中包含行 xmlns http www w3 org 2005 Atom 否则此方法可以正常工作 我该如何解决这个问题 我对命名空间不
  • 如何让不和谐机器人添加你为好友

    我正在创建一个不和谐机器人 我想将其添加到 DM 组中 这样我就可以保持较低的服务器级别 但是 您无法将不是朋友的人添加到群组 DM 中 有没有办法让不和谐机器人接受好友请求 不可能 机器人帐户无权使用 Discord 的关系端点 这意味着
  • 领事注销“失败”服务

    我有 Consul 在 Consul v0 5 2 版本上运行 服务在 Mesos 中运行 服务不断从一台服务器转移到另一台服务器 有没有办法取消领事中处于 失败 状态的服务 我可以使用此curl 获取处于失败状态的服务列表 curl ht
  • 具有多个计数子查询的 SELECT 查询

    我刚刚为报告编写了这个查询 但我最初编写它时没有在每个子查询上使用日期范围过滤器 但这没有用 所以我将它添加到每个子查询中 这很有效 但我真的不喜欢每次都重复它 是否有语法可以更简单地完成同样的事情 SELECT Count r id AS
  • 聚合、组合、关联、直接关联

    我正在复习面向对象编程方面的知识 在类之间的关系主题下 我遇到了一些对我来说有点模糊的关系 我知道依赖项 uses a 和继承 is a 但我对聚合 组合 关联和直接关联有点不熟悉 另外 其中哪一个是 has a 关系 有些可以与关联互换使
  • MongoDB - 使用全文搜索搜索单词和短语时的逻辑 OR

    我之前问过一个相关问题 根据发帖者的建议 创建了这个新问题作为后续问题 MongoDB 全文搜索 匹配单词和精确短语 https stackoverflow com questions 28368883 mongodb full text
  • 页面加载时,angularjs ng-cloak 不起作用

    我是 AngularJS 的新手 并试图解决在评估 ng if 条件之前显示某些 HTML 代码的问题 我正在使用 ng cloak 正如许多其他堆栈溢出 URL 中提到的那样 但它仍然对我不起作用 我正在尝试加载默认图像 如果 URL 上
  • 每个模块必须有唯一的路径

    我已经使用 GIT 从版本控制导入了一个项目 导入 同步等等之后 它给了我这个错误 错误 模块 LinkedCraftMobile linkedcraft android 指向文件系统中的同一目录 每个模块都必须有唯一的路径 我想要一个可以
  • 如何将数据表存储在缓存中以便重复使用?

    在我的应用程序中 我使用了通用处理程序来处理请求 我想要一种机制 如果第一次请求到达处理程序 它会向服务器发出请求 然后缓存整个数据表 因此对于即将到来的请求 如果下一个请求的产品代码存在于缓存的数据表中 则它不应该去再次获取数据的服务器
  • Net Core自定义用户属性

    我在 NET Core 项目中使用默认授权 我想检查用户是否是管理员 因此在 ApplicationUser cs 模型中我添加了以下内容 public class ApplicationUser IdentityUser public b
  • 实体框架中的 FirstOrDefault 调用已缓存,但数据库已更改

    我有一个奇怪的问题 我以前没有遇到过 我使用实体框架来检索我的记录 我有以下电话 var dbOrganisation repository DbOrganisation FirstOrDefault c gt c Id id 我预计不会缓
  • NfcAdapter.getDefaultAdapter(this) 返回 null 但 NFC 可以工作

    我的应用程序在后台和前台使用 NFC 读取 对于用户信息 我在活动中使用 CountDownTimer 120 1000 5 1000 和方法 onTick long l 每 5 秒检查一次 NFC 状态 有时 在 Android 4 2
  • Android 短按打开 ContextMenu + 传递项目单击的详细信息

    lv setOnItemClickListener new OnItemClickListener Override public void onItemClick AdapterView
  • 解决Java中的传递依赖冲突

    我正在尝试建立一个空投向导 http www dropwizard io 泽西岛 与 HBase 通信的 REST 端点 尽管这是我仅有的两个顶级依赖项 但这两个依赖项都加载了许多冲突的传递依赖项 这种冲突的一个简单例子是 Google 的
  • Receive-Job 返回意外的变量类型

    我正在尝试执行Invoke Sqlcmd命令 来自SQLServer模块 https learn microsoft com en us sql powershell sql server powershell view sql serve
  • 输入和按钮与 Bootstrap 在同一行

    我想将输入字段和按钮放在同一行中 我想为按钮设置固定大小 并且希望表单填充可用空间 我尝试创建自己的解决方案 但不幸的是该按钮低于输入字段 我怎样才能解决这个问题 CSS input bar display table width 100
  • 对象方法内的自引用

    刚刚开始在 Matlab OO 编程中进行速成课程 我想为一个对象编写一个 set 方法 该方法将设置值 然后通过在另一个对象的相关字段中设置自身来进行交互 classdef Person properties age sex priori
  • 拖放,防止尴尬的突出显示?

    我正在使用查询构建拖放方法 onmousedown 导致 onmousemove 拖动 然后 onmouseup 解除绑定 onmousemove 问题是 浏览器默认开始突出显示 onmousemove 它会在整个页面上飞来飞去并取消该事件
  • 具有数据属性的 HTML Option 元素。是否可能,如果可以,如何使用 jQuery 检索值?

    我只是想知道是否可以在 html 中包含带有数据属性的选项元素 如果可以的话如何检索该值 更具体 假设我有以下代码
  • 如何在 YAML 中使用 IF ELSE 和变量?

    我正在使用 Ansible Tower 的 YAML 文件 其中包含以下信息 name Package Deployment block name Update package package yum update cache True u