Трубопровод Jenkis с дополнительными учетными данными для ansible - PullRequest
0 голосов
/ 20 февраля 2020

У меня проблема с условиями в ansible.
Вот мой пример кода:

// some code that generates result with lines
when: result.stdout_lines | length > 0
   block:
   - name: generates json
      // some magic
      register: jsonFile

   - name: processing json
     // some json parcing magic
     when condition in json 

Проблема: block использует для всех условий подзадачи when: result.stdout_lines | length > 0
Если подзадача имеет свое собственное условие, when: result.stdout_lines | length > 0 отбрасывается.
Это упоминается в документации для блока

Поэтому, когда ansible достигает when: result.stdout_lines | length > 0, это попытка сделать - name: processing json.
- name: processing json не удалась, потому что - name: generates json не был выполнен.

Но я не хочу выполнять эти 2 задачи, если результат пуст.
Что я должен использовать вместо block, чтобы «скрыть» подзадачи от выполнения?

Ansible версия 2.9

1 Ответ

0 голосов
/ 20 февраля 2020

вы можете использовать второй yaml-файл sub.yml с воспроизведением в нем:

- name: generates json
  // some magic
  register: jsonFile
- name: processing json
  // some json parcing magic
  when condition in json

и затем вызывать с помощью include из родительского playbook:

  - name: i am the parent
    include: sub.yml
    when: result.stdout_lines | length > 0
...