За последний год я управлял 20–30 хостами на базе cPanel с помощью Puppet, Nagios и Munin для общего мониторинга/отслеживания тенденций, однако многие методы, которые мне приходилось использовать для развертывания/управления такими вещами, как конфигурации, были утомительными.
Для тех из вас, кто не знаком с cPanel - он добавляет несколько вещей в исключение yum, таких как perl*, ruby* и т. д. Это вызывает проблемы с возможностью загрузочного мониторинга на новом сервере через Puppet (точнее, через тип Package) из-за кучи конфликтов с установкой через Yum.
Теперь я мог бы создать пользовательский RPM для всего и удалить определенные зависимости из файла спецификации, однако я хотел бы избежать этого, если это возможно. Есть ли у кого-нибудь какие-либо предлагаемые функциональные способы управления такого рода средой?
В настоящее время я устанавливаю Puppet, Facter и Munin через RPM и принудительно устанавливаю с помощью --nodeps и т. п. (так как они установлены, просто нет тех, которые хочет Yum). Nagios я установил вручную из исходников в это время (вероятно, создам RPM, однако я хочу сначала решить эту общую проблему).
решение1
Используйте экземпляр ruby cPanel — /scripts/installruby — оттуда вы можете выполнить установку через gem или через исходный код.
решение2
Munin можно установить с помощью установщика плагина WHM по адресу:
Главная >> cPanel >> Управление плагинами
Просто нажмите «Установить и обновлять», и обновление будет установлено.
Yum должен иметь возможность устанавливать пакеты с зависимостями в exclude=
разделе yum.conf, если они находятся в базе данных RPM и имеют правильную версию. Известно, что системы cPanel часто получают поврежденные базы данных RPM. Попробуйте перестроить ее, а затем повторите установку. Перестройте базу данных RPM:
Удалите файлы /var/lib/rpm/__db*, чтобы очистить устаревшие блокировки от мертвых процессов RPM:
cd /var/lib/rpm
rm __db*
Перестроить базу данных RPM:
rpm --rebuilddb
Есть ли разница?
Если нет, то установлены ли вообще недостающие зависимости? Проверьте с помощью:
rpm -qa
или:
rpm -qi [packagename]
cPanel устанавливает Ruby через RPM, поэтому он должен быть указан в списке и должен разрешить зависимость при установке через yum. Однако cPanel не устанавливает PHP, поэтому если эта зависимость отсутствует, то это уже другая проблема.
решение3
Проблема с автоматическим деплойментом RPM. К сожалению, cPanel не использует пакеты на основе RPM / добавляет некоторые вещи в исключения Yum / устанавливает некоторые вещи в нестандартных областях (насколько это касается RHEL), что приводит к проблемам с деплойментом RPM/Yum.
Решение, которое я нашел, заключалось в создании собственного RPM-файла и отключении его автоматического декомпилирования.