Включить задачу, когда сравниваемая версия ниже - PullRequest
1 голос
/ 30 сентября 2019

Я бы хотел установить докер, если версия ниже 19.03.2 .

---
- include_tasks: get_version.yml

- include_tasks: install.yml
  when: (docker_version | int) is version('19.03.2', '<=')

get_version.yml

---
- name: Get docker version
  shell: docker --version
  register: results

- name: Extract docker version
  set_fact:
    docker_version: "{{ results.stdout | regex_search('^.*version\\s([0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2}),.+$','\\1') }}"

- name: Show docker version
  debug: var=docker_version

Какое условие подходит? текущий код всегда включает install.yml. Текущий docker_version я получаю 1,13,1

Ответы [ 2 ]

1 голос
/ 30 сентября 2019

Например, задачи ниже

  tasks:
    - command: docker --version
      register: result
    - set_fact:
        docker_version: "{{ result.stdout.split(' ')[2].split('-')[0] }}"
    - debug:
        var: docker_version
    - debug:
        msg: Install docker
      when: docker_version is version('19.03.2', '<=')

дают

"docker_version": "18.06.1"

"msg": "Install docker"
0 голосов
/ 30 сентября 2019

Можете ли вы попробовать без преобразования в int?

- include_tasks: install.yml
  when: docker_version is version('19.03.2', '<=')

Также в вашем коде сравниваемая версия ниже, так что я думаю, что должен быть назван playbook install.yml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...