簡體   English   中英

Ansible 無法將版本與 is 版本進行比較

[英]Ansible fails to compare version with is version

我使用 Ansible 2.8.5。 我可以使用ansible_facts.package但很簡單,讓我們使用以下劇本。

  - debug:
     msg: "{{ { 'version':'5.52.2' } is version('6.0.0','>=') }}"

返回

   ..."msg" : True

如何正確比較正確的點分隔版本?

我閱讀了官方文檔,但沒能理解函數version是如何工作的。 甚至有人說這應該引發TypeError異常。 似乎沒有人理解version是如何設計的......

嘗試這個。 請參閱版本比較 在字符串中提供版本。

- hosts: localhost
  tasks:
    - set_fact:
            version1: "5.52.2"
            version2: "6.0.0"
    - debug:
            msg: "{{ version1  is version( version2  , '>=') }}"

為什么不先在變量中register版本,然后添加檢查。 然后你可以比較變量的內容。 這是一個例子——

failed_when: "'<version>{{ version }}</version>' not in this.content"
    - debug: msg=" version is {{ this.content.split('\n')[0].split('version')[1].split('>')[1].split('</')[0]}}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM