Там, где я сейчас работаю, мы должны управлять Linux-частью нашей фермы серверов, которая насчитывает чуть более 300 Linux-серверов. В основном это HP Proliants, за которыми следуют IBM 3850, некоторые блейды IBM, VMware ESX и некоторые KVM для наших внутренних серверов управления.
сапожник
Мы смотрели на сапожника, но проблема заключалась в том, что сапожник очень специфичен для RHEL / Red Hat. Нам нужно как минимум поддерживать RHEL и SLES, а Ubuntu следующая.
кукольный
Мы рассматривали Puppet, однако позже решили отказаться от него, поскольку это зависит от Ruby, что означает, что обновление Ruby может потенциально сломать нашу систему управления.
горячий провод
Hotwire - это то, что мы используем (разработано внутри, но с открытым исходным кодом), и делали это в течение последних нескольких лет. Во-первых, он инвентаризирует системы, которые будут собираться, что означает инвентаризацию центра обработки данных, стойки, оборудования, операционной системы, сети и т. Д., А во-вторых, выполняет быструю сборку и развертывание. Как только система построена, автоинвентаризация hotwire поддерживает синхронизацию инвентаря, в то время как cfengine поддерживает их. Hotwire знает об оборудовании сервера, общаясь с данными SMBIOS / DMI в BIOS через python-dmidecode .
Бонусные моменты заключаются в том, что он объединяет инвентарь и процесс сборки в один, поэтому управлять им меньше, а функция живого инвентаря хороша, как мы знаем, если что-то не так.
Недостатки в том, что пользовательский интерфейс все еще нуждается в доработке, и есть ошибки здесь и там, но разработка все еще горячая, и сообщения об ошибках исправляются относительно быстро.
Cfengine
Мы используем cfengine, потому что кроме него и марионеток, больше ничего нет. Это на самом деле является хорошим инструментом, но «хорошо» только в зависимости от того, насколько хорошо ваши политики - если вы установите опасную политику, то маленькая ошибка может привести много вреда. Например, по политике мы не «модифицируем» файлы, мы либо заменяем их, либо нет. Также все замененные файлы имеют заголовок, который позволяет любому редактору знать, что он будет заменен при следующем запуске (он запускается через cron каждый час).
Конфигурация и все файлы, передаваемые cfengine на серверы, также хранятся в SCM, и с помощью перехватов после фиксации, где это возможно, мы проверяем синтаксис, и если это не удается, то фиксация отклоняется. Это легко для хороших приложений, таких как Apache, но не так просто для большинства корпоративных приложений.