Как преобразовать ответную строку в число с плавающей точкой и использовать это значение для сравнения со значением с плавающей точкой - PullRequest
0 голосов
/ 14 октября 2019

Я хочу преобразовать Ansible string значение в float и сравнить с другим float значением

В моем ini файле bin_version=6.5.17 Я хочу сравнить bin_version с 1десятичное значение (6,5> = 6,7), поэтому я делю его на 1 десятичное значение bin_version.split('.')[:2] и соединяю его с помощью числа с плавающей запятой "{{bin_version.split('.')[:2] | join('.')|float}}"

Но оно не работает, как ожидалось, с условием when условие when: version >= 6.7,Это преобразование с плавающей запятой (|float) действительно работает здесь?

tasks:
  - set_fact:
      version: "{{bin_version.split('.')[:2] | join('.')|float}}"

  - debug:
      msg: "{{version}}"
    when: version >= 6.7

task должно выполняться только тогда, когда version >= 6.7

Но

Случай: 1:Pass

  when: version >= 6.7 // 6.5 >= 6.7

Ожидаемый результат: задача должна быть пропущена, но она выполняется.

1 Ответ

0 голосов
/ 14 октября 2019

Вы должны сравнить, как показано ниже

when: bin_version is version('6.7', '>=')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...