我正在实习,负责设置 Linux 补丁管理系统。这是一家专注于 Microsoft 系统的 IT 基础设施管理公司。他们目前有大约 15 台 Linux 服务器需要管理,从 RHEL5 和 6、Centos 6、OEL5 和 6 到 SLES 10 和 11 不等。大多数系统在地理上分散在不同的客户/客户身上。
一些要求:
- 必须通过防火墙/nat 路由器(代理)后面的 WAN 工作
- 更新控制仪表板(推送更新、黑名单更新、有更新时提醒)
- 支持 RHEL5+6+衍生产品、SLES10+11 和 Ubuntu 12.04。
商业解决方案似乎仅支持他们自己的发行版(RHN Sattelite、SUSE Manager、Landscape)
我对 puppet 和 ansible 进行了小规模的测试。Ansible 感觉相当不错,但由于其无代理设计,无法在 nat/防火墙后面工作。Puppet 似乎过于复杂,无法使补丁管理正常工作,并且仪表板缺乏良好的视图。
每当我尝试使用 CM 系统完成补丁管理时,总感觉不对劲。感觉就像用了错误的工具。
您对 Linux 补丁管理有什么想法/经验?是否有任何解决方案可以满足我的需求?
答案1
免责声明:这似乎是一个非常基于观点的问题,而我即将给出的答案主要是观点。
CM 不适合你被要求提供的东西。由于操作系统的差异,你可能找不到“一个工具来统治所有操作系统”——你必须自己开发一些东西,而这会带来各种可能的陷阱、错误和混乱。这种情况有很多问题,总结起来只有一句话:
“因为赛车!”
答案2
在我的环境中,我使用 Puppet 进行所有服务器管理。但是,我从不使用 GUI,而是通过命令行进行所有操作 - 因此,我并不真正将 Web 界面作为卖点。
我的 Puppet 安装部署了一个脚本,可以自动运行并安装任何安全更新,当然由每日 cron 作业控制。您可以手动执行此操作,并将脚本(本质上类似于yum -y 更新--安全)并让 cron 每天运行它(/etc/cron.daily)。
但是,Puppet 是一种很好的方式,可以从一个主服务器集中管理所有服务器并发送您想要的任何更新。无论您是将 SSHD_CONFIG 配置应用于所有服务器,还是只想运行新的 cron 作业。手动接触 15 台服务器?NTHX。
但是,另一个脚本每周运行一次,让我知道给定服务器有哪些更新可用。出于功能原因等原因,我可能不想让某些软件包自动更新到最新版本。但是,我确实始终希望确保应用了安全补丁。
所以——我的意思是,在像您这样的小型 Linux 环境中,这最有意义。Puppet 是免费的,并且已经创建并提供了许多 Puppet 模块,此外还有大量文档可供使用。
Chef 也是 Puppet 的替代品,尽管我从未使用过它。