Автоматизация развертывания серверов

Всегда работая для следующего сервисного уровня доступности - борющийся за среду, которая главным образом фиксирует себя и всегда находится на всех измеримых учетных записях.

Если Вы не можете иметь размеры (доступность, здоровье, стоимость и так далее), Вы не можете возможно знать, делает ли то, что Вы делаете на самом деле, системы лучше для их цели.

И как всегда, "добейтесь цели" - быть прозрачными, прагматичными и спокойными.

28
задан 30 April 2009 в 14:47
7 ответов

Марионетка звучит идеально подходящей для того, с чего Вы пытаетесь сделать с протестом что прямо сейчас, нет никакой поддержки 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. Другая оборотная сторона - то, что марионетка действительно берет немного дольше, чтобы сделать вещи в первый раз. Позитивный аспект - то, что все, что Вы изменяете через все Ваши машины, хранится в одном месте - это - общепринятая практика для хранения марионеточной конфигурации в системе управления версиями - таким образом, можно всегда оглядываться назад и видеть, как Вы настроили серверы в прошлом - или откатываете некоторые неудачные изменения.

Наконец, вот быстрое видео, которое делает простую марионеточную демонстрацию, которая запустила меня быстро.

20
ответ дан 28 November 2019 в 20:03
  • 1
    Digg.com использует марионетку для управления их серверами, некоторые основные примеры могут быть найдены на их блоге: blog.digg.com/?p=335 blog.digg.com/?p=562 –  Adam Gibbins 2 May 2009 в 01:40
  • 2
    Я полагаю, что администраторская команда Fedora использует марионетку также. –  Mei 8 July 2009 в 18:30

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

2
ответ дан 28 November 2019 в 20:03

Мы используем Сапожника и Марионетку для сборки и автоматизации конфигурации и реальных и виртуальных машин.

Сапожник связывает 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 канонический пример), и возьмите его оттуда. Удостоверьтесь, что Ваши Марионеточные декларации являются имеющими версию, также; ничто не лучше, чем можение легко откатывать к известному - хорошая конфигурация, не имея необходимость помнить, что корректироваться.

9
ответ дан 28 November 2019 в 20:03

Где я работаю в данный момент, мы должны управлять частью Linux нашей фермы сервера, которая является чуть более чем 300 серверами Linux. Это включает главным образом HP Proliants, сопровождаемый 3850 IBM, некоторыми блейдами IBM, VMware ESX и некоторый KVM для наших внутренних серверов управления.

сапожник

Мы посмотрели на сапожника, но проблему, там был то, что сапожник является очень конкретной Шляпой RHEL/Red. Мы должны поддерживать RHEL и SLES по крайней мере, и Ubuntu является следующей.

марионетка

Мы действительно рассматривали марионетку, однако позже отклонил его, поскольку это зависит от Ruby, что означает, что обновление Ruby, мог потенциально повредить нашу систему управления.

hotwire

Hotwire - то, что мы используем (разработанный внутренне, но открытый исходный код), и делали так в течение последних нескольких лет. Это во-первых материально-технические ресурсы системы, которые будут созданными, что означает инвентаризировать центр обработки данных, стойку, аппаратные средства, операционную систему, сеть, и т.д., и во-вторых выполняют быструю сборку и развертывается. После того как система создается, автоматериально-технические ресурсы hotwire сохраняют материально-технические ресурсы в синхронизации, в то время как cfengine поддерживает их. Hotwire знает о серверном оборудовании, говоря с данными SMBIOS/DMI в BIOS с помощью python-dmidecode.

Бонусные очки - то, что это - объединения материально-технические ресурсы и процесс сборки в один, таким образом, существует меньше для управления, и особенность живых материально-технических ресурсов является замечательной, как мы знаем, не совсем ли что-то правильно.

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

cfengine

Мы используем cfengine потому что кроме него и марионетку, нет ничего иного. Это на самом деле - хороший инструмент, но "хороший" только как функция того, насколько хороший Ваши политики - при установке опасных политик, затем маленькая ошибка может нанести большой ущерб. Например, политикой, мы не "изменяем" файлы, мы или заменяем их, или мы не делаем. Также все замененные файлы имеют заголовок, который делает любого человека, редактирующего его, знают, что это будет заменено в следующий раз, когда это работает (это каждый час выполняется через крон).

Конфигурация и все файлы, выставленные cfengine к серверам, также сохранены в SCM, и использующий рычаги постфиксации, если это возможно, мы проверяем синтаксис и если это перестало работать, то фиксация отклоняется. Это легко для хороших приложений, таких как Apache, но не настолько легкое для большинства корпоративных приложений.

6
ответ дан 28 November 2019 в 20:03
  • 1
    Вы отклонили Марионетку, потому что это зависит от Ruby? На основе этого можно отклонить почти что-либо, потому что libc или обновление ядра могли бы повредить его. –  Cristian Ciupitu 20 June 2009 в 00:47
  • 2
    Вы действительно поднимаете вопрос, но в конце, it' s компромисс - сколько пакеты, я хочу к " worry" о на следующем обновлении. Если бы обновление kernel/glibc идет не так, как надо - Вы обычно ожидали бы узнавать почти сразу как it' s самый фундаментальный компонент ОС, однако если Ruby выходит немного отличающийся, Вы wouldn' t действительно замечают, но когда Вы делаете, у Вас может быть 300 серверов, уже обновленных и работа той версии, и теперь Марионетка является жертвой. Но снова, I' m не вырезающий что-либо в камне; это - просто мое предпочтение по вопросу. –  Xerxes 22 June 2009 в 15:19

Другое голосование за Марионетку здесь. Мы используем его экстенсивно для выполнения всего сервера и установки приложения и управления конфигурацией. 200 + узлы и подсчет. Поддержка Windows находится, по-видимому, в разработке, хотя в том, какое состояние я не уверен.

Мы все еще изучаем начальную сторону начальной загрузки ОС вещей, но, как упомянуто выше Сапожника выглядит интересным. Мы в настоящее время используем соединение PXE, загружающегося с предварительным отбором Debian/Ubuntu, но это едва оптимально.

2
ответ дан 28 November 2019 в 20:03
  • 1
    Эй Mike, Вы думаете, что могли добавить марионеточный тег к этому вопросу? Я сделал бы это, но не имею необходимого представителя –  Paul Ivanov 15 July 2010 в 13:06

Я имел успех с Марионеткой. Шеф-повар является новым для появления. Для более длинного списка опций и сравнительной таблицы, см. статью Wikipedia, Сравнение программного обеспечения управления конфигурацией с открытым исходным кодом.

5
ответ дан 28 November 2019 в 20:03
  • 1
    Don' t забывают, что Opscode обеспечивает здоровую стопку готовых к использованию Поваренных книг Шеф-повара. –  jtimberman 4 June 2009 в 10:37

Для автоматизации установки в зависимости от целевой системы:

  • Debian/Ubuntu: FAI или d-i предварительный отбор
  • RedHat/Fedora: Запустить
  • Novell/openSuSE: AutoYaST
  • Солярис: инициировать
  • Windows: unattended.sourceforge.net

Для управления конфигурацией к тому же я предложил бы использовать марионетку.

3
ответ дан 28 November 2019 в 20:03

Теги

Похожие вопросы