簡體   English   中英

Ansible版本比較

[英]Ansible version compare

嘗試比較已安裝的 package 版本並升級到 Ansible 中的最新版本,在服務器未安裝 package 時被阻止。

- debug:
    msg: "Installed version is null or lower than {{ gcc_new_version.stdout }}"
  when: 'gcc_version.stdout == "" || gcc_version.stdout is version(gcc_new_version.stdout, '<')

錯誤:

致命:失敗:=> {“味精”。 “條件檢查'gcc_version.stdout ==“”|| gcc_version.stdout是版本(gcc_new_version,stdout。'<')'失敗:錯誤是:模板錯誤時模板字符串,預期令牌'name'。得到'| ': String. {% if gcc_version.stdout == "" || gcc_version.stdout is version(gcc_new_version,stdout. '<') %} True {% else %} False {% endif %}\n\n出現錯誤位於“ansible/roles/linux/tasks/gcc:yml”,第 24 行,第 3 列。但可能\n位於文件中的其他位置,具體取決於確切的語法問題:\n\n違規行似乎是:\n \n\n- 調試:\n ^ 這里\n"}

我認為問題在於when條件的語法。 條件在 Jinja 上下文中,因此不需要在條件周圍使用單引號' 也可以使用or關鍵字代替|| .

- debug:
    msg: "Installed version is null or lower than {{ gcc_new_version.stdout }}"
  when: (gcc_version.stdout == "") or (gcc_version.stdout is version_compare(gcc_new_version.stdout, '<'))

暫無
暫無

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

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