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

Можете ли вы использовать управление конфигурацией (Puppet / Chef) за брандмауэром?

Мне поручено разработать и внедрить управление конфигурацией (Chef) для инфраструктуры, в которой производственные серверы полностью сегментированы и изолированы за переходным блоком.

 ---------------------------------
| Production | Staging, Test, Dev |
 ---------------------------------

Единственный способ запустить файлы в производство - это sftp-соединение. Есть только два человека, которые могут сразу перейти к производству. Можно сделать исключение, чтобы позволить жестко контролируемой системе автоматизации (например, jenkins) копировать файлы в производство.

Обычно я бы рекомендовал настроить один сервер Chef в облаке, однако производственные серверы не могут иметь внешний доступ. (Без особых убеждений некоторых очень сопротивляющихся людей).

Я вижу одно решение - использовать два сервера Chef.

 ---------------------------------------
| chef-production | chef-local         |
| Production      | Staging, Test, Dev |
 ---------------------------------------

Использование двух серверов Chef имеет некоторые проблемы, которые я не знаю, как решить.

Я открыт для других предложений. Я рассматриваю вариант не использовать сервер шеф-повара, а вместо этого использовать chef-zero или chef-solo. Насколько я понимаю, это не лучшее решение при использовании нескольких сред.

Я ненавижу такую ​​среду без доверия, но я понимаю; Вы должны иметь дело с бизнес-требованиями ...

Вы можете обойти проблему синхронизации кулинарных книг с помощью конвейера CI / CD для ваших кулинарных книг, чтобы они автоматически развертывались на обоих серверах Chef. Вы бы хотели широко использовать такие вещи, как закрепление кулинарной книги, но сделать обновления доступными (даже если они активно не используются) не проблема. Су-шеф это инструмент, исходный код которого был открыт моей компанией, чтобы помочь людям начать автоматизировать тестирование поваренных книг и их загрузку на сервер Chef. Он должен быть изменен, чтобы соответствовать случаю нескольких серверов Chef, но большинство из них есть.

Поскольку Chef12 имеет обе функции для «Организации» и «Управление доступом на основе ролей» (RBAC) (каждая из которых раньше была доступна только в платном продукте), вы можете установить такие разрешения, чтобы только указанные люди могли изменять производственную среду, или что Производство было отдельной Организацией на том же сервере Chef.

Добавление новых узлов к серверу Prod Chef потребует некоторой начальной загрузки. Детали будут сильно различаться в зависимости от вашей среды, но, имея локальный установщик для этой среды, вы можете настроить его как однократное задание при кикстарте или развертывании из шаблона виртуальной машины. Если у вас есть инструменты для раскрутки виртуальных машин через API, не должно быть слишком ужасно расширить его до добавления команд начальной загрузки. (В конце концов, Chef - это система, управляемая API.)

Ваш вопрос о базах данных слишком широк для здесь.

Имейте в виду, что для использования нескольких шеф-серверов потребуется отдельный knife config, поэтому вам нужно будет либо не забыть передать флаг конфигурации для каждого из них, либо обернуть команды для knife связывание файла конфигурации. Если, конечно, у вас нет достаточной автоматизации, чтобы никогда не понадобиться knife.

Chef-Zero предназначен для локального тестирования, где вы могли бы использовать Chef-SoloХочу поискать. На самом деле это не имеет смысла для управления вашими продуктами.

Некоторые компании используют Chef-Solo для своей среды, не предназначенной для тестирования, в режиме «запускать по мере необходимости». Лично мне это не нравится. мне нравиться Solo для локального тестирования (например, с Vagrant) или если вы настраиваете системы с намерением, чтобы они были неизменными. Если вы собираетесь иметь долго работающие серверы (в основном без сохранения состояния и часто отключаемые, стандартный Chef-Server поможет вам предотвратить дрейф конфигураций с течением времени.