繁体   English   中英

将两个版本号与 ansible 中的版本进行比较

[英]Compare two version numbers with version in ansible

我正在编写一个剧本,只有当软件的新软件包版本可用时才应该运行。 两个版本号都是我用“set_fact”设置的自定义事实

Ansible 让你比较版本号,所以我是这样试的:

- name: compare versions
  debug:
    msg: "The version {{ new_version }} is newer than the old version {{ old_version }}"
  when: "{{ new_version is version('{{ old_version }}', '>', strict=True }}"

Ansible 抛出版本号无效的错误。 当我将“old_version”设置为固定版本号时,它会按预期工作。 是否可以将两个事实与“版本”进行比较? 我已经尝试过使用双引号等不同的方法,这会导致 ansible 中的语法错误。

有任何想法吗?

谢谢

它可能是在条件中使用 Jinja 分隔符{{ when:条件下,您不需要这些分隔符进行插值。

以下示例有效:

vars:
  new_version: 14
  old_version: 12

tasks:
- debug:
    msg:  'The version {{ new_version }} is newer than the old version {{ old_version }}'
  when: "new_version is version(old_version, '>')"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM