如何“yum update”/“aptitude safe-upgrade”多台主机?

San*_*dra 6 remote-access linux ubuntu centos puppet

我有两本关于 Puppet 的书,但没有一本提到如何 pushyum updateaptitude safe-upgrade.

所以我得到的印象是 Puppet 不能,我觉得很难相信。

每个月您将如何推送yum update或推送aptitude safe-upgrade多个不同的主机?

Sco*_*ack 12

Puppet 实际上只是一个配置管理实用程序,而不是一个自动化工具。如果您想要适当的自动化,那么您将需要查看 mcollective,它最初是作为 3rd 方工具,现在已被纳入 puppetlabs 的保护伞之下。没有与 mcollective 合作过,我也不能说它会如何处理这个问题,但我的理解是它最适合作为任意任务执行机制,当尝试执行定期重复的任务时效果不佳.

我相信最好的方法是开发一个你想要更新的脚本和过程,然后使用 puppet 推出配置。所以问自己以下问题。

  1. 我希望机器多久更新一次?
  2. 我是否希望它们在安装新内核时自动重新启动,或者我只是想要一个通知?
  3. 我们应该在更新期间运行任何特殊命令吗?
  4. 我是否有足够的系统来交错更新?

当您开始构建配置并回答这些问题时,您可能会发现更多来自您的特定环境的内容。对于一个具体的例子,我做的是这样的:

  • 我的大部分系统更新都是每周一次,通过 cron 作业。根据目的和环境,某些系统的频率要高得多。
  • 大多数系统会自动重启,某些系统(取决于目的)通过电子邮件发送重启提醒。这是通过 cron 作业处理的,该作业/boot根据以下输出检查最高版本编号的 vmlinuz 文件uname -r
  • 在被 RHEL 5.3->5.4 的 glibc 更新烧毁后,我确保更新 yum,然后是 glibc,然后是其他所有内容。
  • 由于所有这些都是由 cron 作业运行的,因此我在每次 yum 运行之间有随机时间的睡眠。每个主机可能需要 5 分钟到 45 分钟才能完成,这可以合理地分散负载。

这都包含在两个文件中,存储在其中的两个 cron 条目(更新和内核检查)/etc/cron.d和更新脚本。我正在使用一个看起来越来越凌乱的 shell 脚本来执行此操作,该脚本使用命令行参数来执行更新或内核检查以及是否重新启动。Puppet 然后管理这两个文件。由于您同时处理基于 rpm 和 dpkg 的系统,我可能会创建两个脚本或do_update为这两种风格创建单独的函数,并使用不同的命令行开关调用每个函数。然后,您可以通过检查operatingsystem文件声明中的事实来推出正确的脚本,或者对 cron 条目进行模板化并使用相同的事实来决定使用哪个开关。

使用经过良好测试的脚本,此方法效果很好。事实上,这个设置已经成功使用了几年来处理数百个系统。当内核打包程序开始向文件添加越来越多的次要版本并且比较例程卡住时,我们偶尔会看到打嗝。


Ken*_*ert 8

Puppet 本身不是这项工作的工具。Puppetlabs 有一个独立的工具叫做 MCollective,它类似于 Capistrano、Fabric 和 Func。

有一个名为Packages Agent的 MCollecive代理,它能够进行 yum 更新以及其他类型的包管理。

您提到您的基础架构的一部分正在运行 Ubuntu。也许您应该查看无人值守升级包。


Red*_*Tux 5

如果您的主机是 RHEL 主机,您可能希望查看RHN Satellite。否则太空行走可能值得一看**(见下面的注释)。它们旨在管理上游软件包存储库的本地副本并促进注册到 RHN Satellite 服务器的系统的管理。您可以安排在特定时间更新软件包,或者如果您启用了 OSAD,则可以在 RHN Satellite/Spacewalk Web GUI 中安排近期更新。

有些人在下面发布了使用 puppet 的帖子,还有一些关于如何将 Puppet 与 RHN Satellite 集成的博客和网页。

或者....

如果您对查看最终将取代 RHN 卫星的新兴项目更感兴趣,您可以查看Katello 项目。Katello 包含许多项目,这些项目是 Red Hat 的 CloudForms 产品的一部分,据说是 RHN Satellite 最终替代品的上游。事实上,Katello 通过使用 Foreman 来集成 Puppet。从长远来看 Katello 绝对值得考虑而不是 Spacewalk(但由于订阅/支持,RHN Satellite 还没有)。

** 我在我的帖子中将 RHN Satellite 和 Spacewalk 都称为 RHN Satellite,以简化操作。真正的区别在于天气与您是否拥有 RHEL 系统,如果是这种情况,您将需要 RHN 卫星,因为它可以以受支持的方式从 RHN 下载,Spacewalk 将适用于使用 RHEL 或 Fedora 重建的用户(我了解 Spacewalk可能也支持 Debian,但我个人对此不太了解。)因此,在搜索信息时,可能需要搜索 Spacewalk 或 RHN Satellite