Всегда работая для следующего сервисного уровня доступности - борющийся за среду, которая главным образом фиксирует себя и всегда находится на всех измеримых учетных записях.
Если Вы не можете иметь размеры (доступность, здоровье, стоимость и так далее), Вы не можете возможно знать, делает ли то, что Вы делаете на самом деле, системы лучше для их цели.
И как всегда, "добейтесь цели" - быть прозрачными, прагматичными и спокойными.
Марионетка звучит идеально подходящей для того, с чего Вы пытаетесь сделать с протестом что прямо сейчас, нет никакой поддержки Windows.
В Вашем случае Вы определили бы узел Сервера с точки зрения всех пакетов, которые идентичны через машины. Затем Вы определяете отдельные хосты как узлы, которые наследовались Серверу и настраивают определенные уникальные вещи для него.
Марионетка декларативна - это позволяет Вам описывать Ваших полей с точки зрения ресурсов, которые должно иметь каждое поле. Таким образом, если Вы хотите ssh
- Вы пишете класс для того ресурса - и в классе можно включать логику о том, как ssh называют немного отличающимся на FreeBSD по сравнению с Ubuntu. Это также знает для использования yum
в Redhat и apt-get
в Debian основывал дистрибутивы, и ports
в BSDs. Теперь в Вашем узле Сервера, у Вас просто будет строка как include ssh
- и марионетка сделает правильную вещь и поместит SSH на машину без Вас имеющий необходимость помнить, является ли это Ubuntu или Redhat или FreeBSD.
То, что хорошо, - то, что весь Сервер наполняет жизни в одном месте - и если бы в какой-либо точке Вы добавляете к определению узла Сервера, ВСЕ машины обновили бы свою конфигурацию соответственно.
Прямо сейчас я только управляю тремя полями с помощью Марионетки - но это уже заплатилось. После пребывания в течение недели, настраивая поле мы будем использовать для презентации стимула в эксперименте, оказалось, что драйвер графической платы был слишком стар в версии Ubuntu, я поставил его (8.04). Я должен был установить последнюю Ubuntu (9.04), но после этого я просто имел в Кв. - получают и выполняют марионетку - и все, что я провел неделю, настраивая, был восстановлен.
У марионетки действительно есть что-то вроде кривой обучения, но я успешно постарался не изучать Ruby - я знаю, что использую его, так как это - то, какая марионетка записана в - но до сих пор я был успешен в просто изменении примеров в документации и рецептах на Wiki. Другая оборотная сторона - то, что марионетка действительно берет немного дольше, чтобы сделать вещи в первый раз. Позитивный аспект - то, что все, что Вы изменяете через все Ваши машины, хранится в одном месте - это - общепринятая практика для хранения марионеточной конфигурации в системе управления версиями - таким образом, можно всегда оглядываться назад и видеть, как Вы настроили серверы в прошлом - или откатываете некоторые неудачные изменения.
Наконец, вот быстрое видео, которое делает простую марионеточную демонстрацию, которая запустила меня быстро.
Я имею большой успех с Марионеткой, но действительно необходимо записать большую конфигурацию.
Мы используем Сапожника и Марионетку для сборки и автоматизации конфигурации и реальных и виртуальных машин.
Сапожник связывает DHCP, PXE загружают и Запускают для создания развертывания не чем иным как добавлением профиля машины и ударом кнопки питания. Для VMs, koan
команда делает (в нашем случае) волшебство Xen запустить установку - на dom0
Я просто ввожу:
koan --system vps.fqdn --server cobbler --no-gfx
затем virsh console
наблюдать VPS, создающий без любого взаимодействия.
Мы используем RHEL и имеем набор набора профиля до дисков раздела, настраиваем сети и устанавливаем основные пакеты для различных классов сервера. Сапожник поддерживает Debian и породы Ubuntu, но я никогда не пробовал его. В стороне: другое интересное использование для Сапожника включает выполнение memtest ISOs и обновления встроенного микропрограммного обеспечения HP.
После того как наши системы создаются с Марионеткой Сапожника, вступает во владение, чтобы настроить приложения, системных демонов, зарегистрировать поле в RHN, и т.д. Марионетка работает как демон, который периодически проверяет, что конфигурация систем соответствует определенным декларациям - Вы знаете, что Ваши обновления перешли ко всем серверам. Это - также отличный способ быть уверенным, что поле, на которое это снизилось для обслуживания, имеет корректную конфигурацию перед возвратом его для проживания сервиса.
Марионетка действительно является удивительной. Вы не должны добираться, каждый аспект Вашей конфигурации под ее управлением - начинаются при наличии, это управляет чем-то простым, которое необходимо настроить на каждом поле (sudoers
канонический пример), и возьмите его оттуда. Удостоверьтесь, что Ваши Марионеточные декларации являются имеющими версию, также; ничто не лучше, чем можение легко откатывать к известному - хорошая конфигурация, не имея необходимость помнить, что корректироваться.
Где я работаю в данный момент, мы должны управлять частью Linux нашей фермы сервера, которая является чуть более чем 300 серверами Linux. Это включает главным образом HP Proliants, сопровождаемый 3850 IBM, некоторыми блейдами IBM, VMware ESX и некоторый KVM для наших внутренних серверов управления.
Мы посмотрели на сапожника, но проблему, там был то, что сапожник является очень конкретной Шляпой RHEL/Red. Мы должны поддерживать RHEL и SLES по крайней мере, и Ubuntu является следующей.
Мы действительно рассматривали марионетку, однако позже отклонил его, поскольку это зависит от Ruby, что означает, что обновление Ruby, мог потенциально повредить нашу систему управления.
Hotwire - то, что мы используем (разработанный внутренне, но открытый исходный код), и делали так в течение последних нескольких лет. Это во-первых материально-технические ресурсы системы, которые будут созданными, что означает инвентаризировать центр обработки данных, стойку, аппаратные средства, операционную систему, сеть, и т.д., и во-вторых выполняют быструю сборку и развертывается. После того как система создается, автоматериально-технические ресурсы hotwire сохраняют материально-технические ресурсы в синхронизации, в то время как cfengine поддерживает их. Hotwire знает о серверном оборудовании, говоря с данными SMBIOS/DMI в BIOS с помощью python-dmidecode.
Бонусные очки - то, что это - объединения материально-технические ресурсы и процесс сборки в один, таким образом, существует меньше для управления, и особенность живых материально-технических ресурсов является замечательной, как мы знаем, не совсем ли что-то правильно.
Недостатки - то, что пользовательскому интерфейсу все еще нужна полировка, и тут и там существуют ошибки, но разработка является все еще горячей, и ошибки, о которых сообщают, исправлены относительно быстро.
Мы используем cfengine потому что кроме него и марионетку, нет ничего иного. Это на самом деле - хороший инструмент, но "хороший" только как функция того, насколько хороший Ваши политики - при установке опасных политик, затем маленькая ошибка может нанести большой ущерб. Например, политикой, мы не "изменяем" файлы, мы или заменяем их, или мы не делаем. Также все замененные файлы имеют заголовок, который делает любого человека, редактирующего его, знают, что это будет заменено в следующий раз, когда это работает (это каждый час выполняется через крон).
Конфигурация и все файлы, выставленные cfengine к серверам, также сохранены в SCM, и использующий рычаги постфиксации, если это возможно, мы проверяем синтаксис и если это перестало работать, то фиксация отклоняется. Это легко для хороших приложений, таких как Apache, но не настолько легкое для большинства корпоративных приложений.
Другое голосование за Марионетку здесь. Мы используем его экстенсивно для выполнения всего сервера и установки приложения и управления конфигурацией. 200 + узлы и подсчет. Поддержка Windows находится, по-видимому, в разработке, хотя в том, какое состояние я не уверен.
Мы все еще изучаем начальную сторону начальной загрузки ОС вещей, но, как упомянуто выше Сапожника выглядит интересным. Мы в настоящее время используем соединение PXE, загружающегося с предварительным отбором Debian/Ubuntu, но это едва оптимально.
Я имел успех с Марионеткой. Шеф-повар является новым для появления. Для более длинного списка опций и сравнительной таблицы, см. статью Wikipedia, Сравнение программного обеспечения управления конфигурацией с открытым исходным кодом.
Для автоматизации установки в зависимости от целевой системы:
Для управления конфигурацией к тому же я предложил бы использовать марионетку.