比较两个版本号与Ansible中的版本

时间:2020-09-08 11:46:25

标签: ansible version

我正在写一部剧本,仅在有新的软件包版本可用时才能运行。 这两个版本号都是我使用“ 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语法错误。

有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:1)

它可以在条件中使用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, '>')"
相关问题