Ansible не может сравнить версию с версией - PullRequest
0 голосов
/ 17 марта 2020

Я использую Ansible 2.8.5. Я мог бы использовать ansible_facts.package, но просто, давайте использовать следующий playbook.

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

возвращает

   ..."msg" : True

Как я могу получить правильную версию с разделением точками по сравнению?

Я прочитал официальную документацию и не смог понять, как работает функция version. Некоторые люди даже говорили, что это должно вызвать исключение TypeError. Никто, кажется, не понимает, как version предназначен для работы ...

Ответы [ 2 ]

1 голос
/ 18 марта 2020

Попробуйте это. см. Сравнение версий . Укажите версию в строке.

- hosts: localhost
  tasks:
    - set_fact:
            version1: "5.52.2"
            version2: "6.0.0"
    - debug:
            msg: "{{ version1  is version( version2  , '>=') }}"
0 голосов
/ 18 марта 2020

Почему бы вам не 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]}}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...