(Заранее извиняюсь за глупость в этом вопросе. Обычно я программист, а не системный администратор, но я взял на себя задачу автоматизировать некоторые вещи и очистить некоторые другие, которые автоматизированы, но не самым красивым образом . :-)
Я искал различные инструменты для автоматизации развертывания программного обеспечения на нескольких серверах, таких как cfengine, Puppet и Chef. Пока что Puppet выглядит наиболее привлекательно, но я, конечно, еще ни к чему не стремился.
Все эти инструменты выглядят так, будто отлично справляются с необходимостью поддерживать ряд серверов в актуальном состоянии с помощью предварительно упакованного программного обеспечения.
Чего я не понимаю: как использовать инструмент (например, Puppet) для управления развертыванием нашего внутреннего программного обеспечения? Я думаю , что я в растерянности , потому что я видел тысячи учебников , показывающие , как сохранить Apache ensure => latest
(который является довольно прохладно), но ничего , что вполне соответствует моему потребительной случае сегодня, что - то подобное:
- когда человек нажимает кнопку,
- вытащить ветку A из репозитория контроля версий B
- запустить команду C, чтобы скомпилировать ее
- скопировать двоичные файлы D на серверы с E1 по E10
- на каждом сервере выполните команду F, чтобы все изменения вступили в силу
Puppet звучит великолепно, и я полностью вижу преимущество декларативной идемпотентной конфигурации по сравнению с некоторыми сценариями оболочки, но я не видел никаких руководств для «вы хотите обновить свои сценарии оболочки до Puppet (или Chef, или cfengine), так что вот что вы следует сделать". Что-то подобное существует? Разве для других людей очевидно, как взять то, что предусмотрено в документах Puppet, и воспроизвести то поведение, которое я хочу? Я просто не понимаю?
Пока это звучит для меня так, что человек (# 1) вручную упаковывает программное обеспечение (# 2 и # 3), внешнее для Puppet, вручную обновляет конфигурацию Puppet, что запускает Puppet для обновления серверов. .. может быть? (Я немного запутался здесь, как я уверен, вы можете сказать.)
Спасибо!