Как обрабатывать различия версий Puppet между дистрибутивами Linux
Мы являемся небольшим интернет-магазином, который исследует возможности развертывания Puppet на различных серверах разработки и производства.
Puppetmaster - это сервер Ubuntu 10.04 с Puppet 0.25.4 из репозитория Ubuntu. Некоторые марионеточные клиенты - это Ubuntu с марионетками 0.25.4, но другие основаны на RedHat или Centos и используют репозиторий EPEL, который предоставляет пакеты марионеток 0.25.5.
Эти новые клиенты не могут общаться со "старым" puppetmaster, поэтому я могу либо обновить мастер, либо понизить версию клиентов. Однако я не могу найти обороты, чтобы понизить клиентов до 0.25.4. Создание моих собственных пакетов - это рутинная работа, без которой я мог бы справиться, так как я - единственный системный администратор в компании.
Как вы справляетесь с различными версиями клиент / сервер в гетерогенной среде?
3 ответа
Я бы предложил пойти с последней стабильной puppetmasterd
где ты можешь. Это значительно упростит процесс обновления ваших клиентов, когда придет время. Такие относительно молодые и быстро развивающиеся проекты часто генерируют незначительные выпуски для функций и исправлений, которые могут оказаться неоценимыми. Конечно, вы все равно должны внимательно прочитать каждый ChangeLog, чтобы предотвратить все, что может повлиять на вашу среду во время обновления.
Упаковка вашей собственной версии не должна быть такой сложной, и это навык, который в будущем вы должны найти достаточно ценным, чтобы освоить время. Мне пришлось свернуть свои собственные предварительные пакеты для Puppet, чтобы обойти ошибки, с которыми я сталкивался до сих пор.
В этом конкретном случае вы можете обнаружить, что новые пакеты из нестабильного дерева Debian будут работать на вас. В качестве альтернативы есть даже передний край PPA, если вы хотите, ну, порезаться.
Вы должны обновить свои версии Ubuntu.. но если вам нужна старая версия RedHat
Для справки:
Новая книга Pro Puppet предоставляет хороший обзор установки Puppet на разных платформах, от исходного кода или пакетов, а также написания модулей, чтобы они могли гибко обрабатывать несколько дистрибутивов.