Назад | Перейти на главную страницу

Jenkins Ansible: как передать ресурсы Ansible рабам

мы планируем использовать jenkins и ansible для управления нашей средой: один мастер jenkins и несколько подчиненных jenkins. У рабов есть ансибл.

Доступные сценарии и роли генерируются из центрального источника - то же самое с заданиями конвейера Дженкинса. Мы генерируем релизы всего: конвейеров Jenkins, сценариев и ролей Ansible. Обычно мы создаем артефакты выпуска в Nexus или Subversion (как теги).

Доставить конвейеры до Дженкинса легко (JOB-DSL или из SCM).

Мой вопрос: как передать сценарии релиза и роли рабам Дженкинса там, где они нужны.

Варианты, о которых мы думали:

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

  2. Захватывайте ресурсы при каждом вызове playbook. Недостаток: даже небольшие вещи требуют загрузки доступных сценариев и ролей.

Что вы думаете об этом?

Обычный способ передать playbook подчиненным - использовать SCM. Поскольку playbook может легко зависеть от конкретной версии Ansible, я бы рекомендовал запустить Ansible playbook. внутри контейнера Docker на подчиненных устройствах Jenkins, а не пытаться поддерживать исполняемые файлы и зависимости Ansible. Таким образом вы можете закрепить версию плейбука на Ansible и управлять другими зависимостями времени выполнения для Ansible.