запускать задачи yz, только если условие x выполнено в ansible - PullRequest
0 голосов
/ 24 апреля 2020

Команда, у меня 10 заданий, и я хочу запускать 2-10, только если условие в задании 1 выполнено.

- name: 1Check if the node needs to be processed
  stat: /tmp/fscache-cleaned-up1.log
  register: dc_status
- name: 2Check if the node needs to be processed
  stat: /tmp/fscache-cleaned-up2.log
  register: dc_status
  failed_when: dc_status.stat.exists

.. .. ..

1 Ответ

1 голос
/ 25 апреля 2020

Вы должны использовать «путь» в вызове модуля статистики и «блок» для объединения зависимых задач, например:

- name: Check if the node needs to be processed
  stat:
    path: /tmp/fscache-cleaned-up1.log
  register: dc_status

- name: Run this only when the log file exists
  block:
    - name: Install something
      yum:
        name:
        - somepackage
        state: present

     - name: Apply a config template
      template:
        src: templates/src.j2
        dest: /etc/foo.conf

    - name: Start a service and enable it
      service:
        name: bar
        state: started
        enabled: True
  when: 
    - dc_status.stat.exists
    - dc_status.stat.is_file

Дополнительная информация: ansible модуль статистики использование блока

...