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

Файлы конфигурации сервиса Juju / Puppet

Я написал свой собственный сервис и хочу развернуть его через скрипты Juju / Puppet. Основная цель - автоматизировать весь процесс развертывания, и я обнаружил, что Juju / Puppet должен быть лучшим.

  1. Нужно ли мне готовить пакет (deb / rpm) или его можно загрузить из удаленного репозитория (это служба python)?
  2. Как мне управлять файлами конфигурации для этой службы? Каждый узел имеет немного другой файл конфигурации, и я хотел бы знать, какие подходы позволяют решить эту проблему автоматически. Есть ли какой-либо общий формат файла конфигурации, который можно было бы использовать, или, может быть, я мог бы выбрать, какие строки должны быть включены в конфигурацию на каком узле, или указать «hostname =hostname -s"и он будет выполнен Juju / Puppet и перезаписан. Какие-нибудь общие решения?

Мне интересно, как это делается в производственной среде - в центрах обработки данных, тестовых средах и т. Д. Как администраторы работают со всеми этими файлами конфигурации. Как они автоматизируют свою работу. Недавно мне пришлось настроить много разных сервисов (некоторые из них были установлены только из исходников, потому что для моего дистрибутива не было пакетов - я использую Ubuntu 12.04) на нескольких разных серверах. Мне пришлось создать среду тестирования, и мне было очень скучно, когда мне приходилось повторять каждую конфигурацию на каждом узле. Я не эксперт в создании сценариев bash для автоматизации всего процесса в одном или нескольких сценариях bash, поэтому, возможно, такие инструменты, как Juju / Puppet, могут быть полезны - особенно я не фанат bash :) и я бы хотел написать как можно меньше насколько это возможно в bash.

Я никогда не работал в дата-центре, поэтому хотел бы знать, как это делают профессионалы.

Juju в первую очередь нацелен на ec2 / rackspace и другие облачные развертывания. Вероятно, вы также можете использовать его в традиционном развертывании центра обработки данных.

Если вы собираетесь использовать Juju в традиционном центре обработки данных или среде Colo, вы можете обнаружить, что Juju и марионетка в основном делают одно и то же. Это означает, что вам лучше использовать один или другой, а не оба.

Что касается ваших 2 вопросов:

  1. Я не уверен, какие именно биты вы собираетесь упаковать как rpms / debs. Вы можете использовать марионетку для установки пользовательских пакетов, которые вы создаете, если вы это имеете в виду.
  2. В марионеточном мире один из способов справиться с разными файлами конфигурации - использовать puppet шаблоны. Шаблоны и код манифеста марионетки могут получать информацию из внутренних источников данных, используя ENC функции или надстройки, такие как Hiera.

Если вы хотите развернуть свой сервис на ec2 или других сервисах, и марионетка, и juju будут работать нормально.