Как объединить кучу сборников игр Ansible, которые имеют одинаковую медленную настройку и демонтаж? - PullRequest
1 голос
/ 16 июня 2019

У меня есть около 10 сборников, которые выполняют модульные функции, но для вступления в силу все они требуют перезагрузки.

Есть ли простой способ сказать: «Запустите эти 10 книг воспроизведения, но пропустите фазу перезапуска во всех из них, только перезапуск в конце»?

Пример одиночной пьесы

tasks:
  - name: task1
    ...
  - name: task2
    ...
  - name: task3
    ...
  - name: Reboot machine
    become: yes
    reboot:

Попытка их объединения

- import_playbook: pb1.yml
- import_playbook: pb2.yml
- import_playbook: pb3.yml
...

Проблема с попыткой решения

Существует 10 перезагрузок машины, когда требуется только одна, и это заставляет задание занимать гораздо больше времени, чем нужно - час вместо 10 минут для некоторых более медленных машин

Простое исправление теперь удаляет перезагрузки из всех отдельных плейбуков, за исключением того, что это создает новую проблему в том, что ни один из отдельных плейбуков не работает сейчас, так как каждый из них нуждается в такой перезагрузке, чтобы он работал.

Я мог бы скопировать, вставить все в большее количество книг и вручную удалить перезагрузки, но мне не нравится уходить от одного источника, тем более что эти книги постоянно подправляются и обновляются по мере изменения кода и необходимости учета новых режимов работы системы. .

1 Ответ

0 голосов
/ 16 июня 2019

В каждой книге воспроизведения добавьте один и тот же уникальный тег my_reboot к задаче перезагрузки, затем запустите все с --skip-tags my_reboot.Создайте обработчик в вашем Playbook верхнего уровня или post_tasks.

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