Шеф-повар для крупномасштабного веб-развертывания в Windows

#windows #iis #deployment #chef-infra

#Windows #iis #развертывание #шеф-повар-инфра

Вопрос:

Я пытаюсь выполнить веб-развертывание MSI с помощью chef. У меня около 400 веб-серверов с одинаковой конфигурацией. Мы будем выполнять развертывание в двух слотах по 200 серверов в каждом.

Я буду следовать приведенным ниже шагам для новой версии,

1) Увеличьте версию поваренной книги.

2) Загрузите поваренную книгу на сервер.

3) Обновите версию поваренной книги до роли и списка запуска.

Я сделаю много шагов из поваренной книги, таких как установка 7 msi, обновление настроек IIS, обновление файла web.configure и добавление записи реестра. После завершения развертывания нам необходимо обновить команду тестирования, чтобы они могли начать тестирование. Мой вопрос в том, как я могу обеспечить успешное развертывание на всех компьютерах? Как я могу определить, не установлен ли один MSI на одном компьютере или один файл web.config не обновляется должным образом?

Насколько я понимаю, клиент chef будет запускаться каждые 30 минут по умолчанию, поэтому мне нужно подождать следующие 30 минут для завершения развертывания. Есть ли какой-либо другой способ с помощью push (я не могу использовать push job, поскольку chef удалена поддержка push job с серверов высокой доступности chef), например, клиент knife chef с рабочей станции?

Было бы неплохо, если бы кто-нибудь поделился своим опытом, который использует chef в крупномасштабном развертывании Windows.

Заранее спасибо.

Ответ №1:

Я лично использую rundeck для запуска запусков chef по требованию.

Согласно вашему описанию, я бы использовал 2 prod env, по одному для каждой группы, где вы столкнетесь с ограничением версии поваренной книги для каждой группы отдельно.

Для создания отчетов в этом масштабе рассмотрите возможность покупки лицензии на получение chef-manage и chef-reporting, чтобы у вас был полный обзор. Следующий вариант — использовать обработчик для сообщения о состоянии выполнения и отправки сообщения, если во время выполнения произошла ошибка.

Комментарии:

1. Спасибо Tensibai за ваши мысли. Я попробую использовать эти параметры.

2. Да, я боюсь, что это в основном основано на мнениях:/ rundeck — не единственный вариант, поскольку он не привязан к среде… Это можно было бы сделать с помощью «групповой» кулинарной книги-оболочки с зависимостями версий и т. Д. На самом деле в вашем вопросе много чего. возможно, это можно было бы лучше обсудить на discourse.chef.io

Ответ №2:

Здесь нет ничего специфичного для Windows, поэтому вы больше спрашиваете, как использовать Chef в среде с высоким оттоком. Я бы настоятельно рекомендовал проверить новый рабочий процесс Policyfile, мы добились большого успеха с ним, хотя у него есть некоторые резкие ограничения. У меня есть руководство по https://yolover.poise.io /. Еще одно решение на стороне выпуска поваренной книги / данных — переместить множество ваших настраиваемых файлов (например, версии развертываемых объектов) из поваренной книги в какую-нибудь небольшую веб-службу, а не считывать из нее код рецепта, чтобы получить их данные настройки. Что касается вопроса о push и pull, большинство людей в конечном итоге получают гибрид. Как упоминал @Tensibai, RunDeck — популярный push-вариант. Обычно вы по-прежнему оставляете фоновые интервальные запуски на более длительное время цикла (возможно, 1 или 2 часа), чтобы уловить изменение конфигурации и использовать систему push для более конкретных задач развертывания. Помимо RunDeck вы также можете проверить Fabric, Capistrano, MCollective и SaltStack (вы можете использовать его уровень удаленного выполнения без компонентов CM). У Chef также есть свой собственный проект Push Jobs, но я думаю, что могу с уверенностью сказать, что вам следует избегать его на данный момент, он никогда не получал достаточного импульса сообщества, чтобы действительно куда-то пойти.