2017-02-22 6 views
0

Представьте, что Дженкинс генерирует 3 разных дистрибутива: один на javascript, работающий на NodeJS, другой на python, запущенный на apache с модулем python, а другой на Java с использованием Springboot. Как вы пишете поваренную книгу шеф-повара, чтобы установить их все в локальной инфраструктуре с минимальным дистрибутивом linux ubuntu. Сфера охвата проблемы включает захват триггера от Дженкинса, а затем запуск стартовых книг для разворачивания этих 3 приложений. Основываясь на конфигурации, все 3 приложения должны быть развернуты на одной и той же инфраструктуре или в другой инфраструктуре развертывания.Как написать поваренную книгу повара для нескольких приложений

+0

Добро пожаловать в StackOverflow. Пожалуйста, прочитайте [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask). Твое невероятно широкое, и я бы сказал «хорошо .. просто сделай это, где проблема»? Вы должны четко указать, в чем проблема, с которой вы столкнулись. – StephenKing

+0

P.S: Эти _playbooks_ называются _cookbooks_ по терминологии шеф-повара. Я обновил ваш вопрос. – StephenKing

ответ

0

Так несколько вещей:

  1. Как вы пишете поваренные книги до вас полностью. У меня есть несколько примеров на http://github.com/poise/application_examples для Python, Ruby и Node, но это только мой взгляд на эту тему. Всякий раз, когда вы спрашиваете: «Как мне сделать X с шеф-поваром?» ответ всегда «Как бы вы сделали X без шеф-повара, а затем автоматизировали это».

  2. Как вызвать разворот от Дженкинса немного более нечеткий, чем тот, который уже очень-нечеткий. Самый простой ответ - включить Jenkins SSH в каждую машину и запустить chef-client. Однако это может иметь последствия для безопасности, которые вам не нравятся. Вы можете посмотреть более специализированные системы командной строки, такие как MCollective, SaltStack или, возможно, Chef Push Jobs (хотя я бы пропустил последний). Вы также можете просто настроить свои узлы для автоматического слияния каждые 5 минут, чтобы все Jenkins обновляли некоторые вещи на Chef Server, чтобы сказать, какую версию развернуть, а затем ждет 10 минут.

0

У меня есть аналогичный случай с вашим, используя TeamCity вместо Дженкинса. (Но вы можете повторить подобное поведение)

В моем случае я использую policy_files для управления своей инфраструктурой, где передаю в качестве атрибутов информацию о сборке, чтобы я мог загружать артефакты в рецепт. Главный трюк имеет сборку, которая запускается службами, которые вы упоминаете (Python, Java ... безотносительно), обновляя атрибуты (имя сборки, имя артефакта ...) в файле policy_file при совершении GIT результата.

В резюмировать:

  1. Построить за свои услуги завершен.
  2. Сборка для ваших политик_файлов инициируется обновлением информации о загрузке artefact.
  3. Ваш обычный рабочий процесс сборки.

Чтобы загрузить артефакты, вы можете использовать ресурс chef remote_file, делая проверку контрольной суммы, чтобы избежать загрузки одного и того же файла на каждом проходе повара.

Смежные вопросы