@speedvm

Есть ли аналог meta для Ansible?

Доброго всем всего!
Представим простую роль со структурой:
roles
  - role
    - tasks
      - main.yml

Добавим в роль директорию meta с файлом main.yml:
roles
  - role
    - meta
      - main.yml
    - tasks
      - main.yml

И запишем в файл roles/role/meta/main.yml следующее:
- role: another_role
  delegate_to: another_host
  vars:
    var1: value1

В результате перед выполнением задач роли из файла roles/role/tasks/main.yml будут выполнены задачи из роли roles/another_role/tasks/main.yml.
Мне нужен противоположный результат, то есть нужно, чтобы задачи роли another_role были выполнены после выполнения всех задач роли role.
Можно это реализовать с помощью handlers, но, по-моему, этот путь немного про другое (про запуск в зависимости от какого-либо результата выполнения). Да и роль через handlers не запустить.
Как реализовать поствыполнение задач для роли красиво?
  • Вопрос задан
  • 38 просмотров
Решения вопроса 1
@speedvm Автор вопроса
Добавил в конец каждой роли конструкцию:
- include_role:
    name: another_role
    apply:
      delegate_to: another_host
  vars:
    var1: value1

К сожалению, другого варианта пока не вижу.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@MaxKozlov
Мне кажется, что проще всего не выдумывать новые сущности, а просто сделать
- role1
- role2

Оно и нагляднее

в конце концов можно в role2 сделать зависимость от role1 через meta, если вам нужно декларировать эту зависимость

Ваш же подход с постзависимостью только увеличивает связность ролей. Зачем?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы