在过去的一年里,我一直使用 Puppet、Nagios 和 Munin 管理 20-30 个基于 cPanel 的主机,进行常规监控/趋势分析,但是我不得不使用很多方法来部署/管理配置等事情,这很麻烦。
对于那些不熟悉 cPanel 的人来说 - 它向 yum 排除添加了一些内容,例如 perl*、ruby* 等等。这导致我无法通过 Puppet(通过包类型)在新服务器上引导监控,因为与通过 Yum 安装存在一系列冲突。
现在我可以为所有内容创建自定义 RPM 并从 spec 文件中删除某些依赖项,但是如果可能的话,我想避免这种情况。有没有人提出任何管理此类环境的实用方法?
目前我通过 RPM 安装 Puppet、Facter 和 Munin,并使用 --nodeps 等强制安装(因为它们已安装,只是没有 Yum 想要的)。Nagios 我这次从源代码手动安装(可能会创建 RPM,但我想先解决这个一般问题)。
答案1
使用 cPanel 的 ruby 实例 -- /scripts/installruby -- 从那里您可以通过 gem 或通过源进行安装。
答案2
嗯,Munin 可以通过 WHM 插件安装程序进行安装:
主页 >> cPanel >> 管理插件
只需单击“安装并保持更新”即可安装。
exclude=
只要软件包位于 RPM 数据库中且版本正确,Yum 就能够安装 yum.conf 部分中具有依赖关系的软件包。众所周知,cPanel 系统经常会遇到损坏的 RPM 数据库。尝试重建它,然后再次尝试安装。重建 RPM 数据库:
删除 /var/lib/rpm/__db* 文件以清除死 RPM 进程的陈旧锁:
cd /var/lib/rpm
rm __db*
重建 RPM 数据库:
rpm --rebuilddb
有什么区别吗?
如果没有,是否安装了缺少的依赖项?使用以下命令检查:
rpm -qa
或者:
rpm -qi [packagename]
cPanel 通过 RPM 安装 ruby,因此应该列出它并解决通过 yum 安装时的依赖关系。但是,cPanel 不会安装 PHP,因此如果缺少这个依赖关系,那就是另一个问题。
答案3
问题在于 RPM 自动解析。不幸的是,cPanel 不使用基于 RPM 的软件包/将某些东西添加到 Yum 排除/在非标准区域安装某些东西(就 RHEL 而言)导致 RPM/Yum 解析出现问题。
我发现的解决方案是构建我自己的 RPM 并使其不自动解决。