Как пропустить оставшуюся задачу в Ansible и создать определенные условия - PullRequest
0 голосов
/ 31 октября 2019

Я хотел бы создать следующее условие ниже. Есть идеи, как поступить? Я пробовал Когда Условие, set_facts, цикл [], но у меня это не получается. Любая помощь будет высоко оценена.

Пример сгенерированных переменных:

version_detected: "9.0.0.7"

version_available:   "9.1.0.3"
                     "9.0.0.7",
                     "8.0.0.13"

Создайте условие, где

If "version_detected" is inside "version_available", then skip all remaining tasks and end playbook with a debug message.

If "version_detected" is not inside "version_available", then continue playbook for the next task.

Следующая задача:

If "version_detected" contains "8.0", then download file www.site.com/fixpack80.gz to path

If "version_detected" contains "9.0", then download file www.site.com/fixpack90.gz to path

If "version_detected" contains "9.1", then download file www.site.com/fixpack91.gz to path

1 Ответ

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

Это достижимо только с when условиями, при условии, что version_available является списком.

Например:

  vars:
    version_detected: "9.0.0.7"
    version_available: ["9.1.0.3", "9.0.0.7", "8.0.0.13"]

  tasks:
    - fail:
        msg: Unsupported version
      when: version_detected not in version_available

    - debug:
        msg: Do some task for version 8.0.x.x
      when: '"8.0" in version_detected'

    - debug:
        msg: Do some task for version 9.0.x.x
      when: '"9.0" in version_detected'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...