所以我得到的印象是Puppet不能,我觉得很难相信.
题
您如何在每月的许多不同主机上推送yum update或aptitude安全升级?
解决方法
我相信最好的方法是开发一个你想要更新的脚本和进程,然后使用puppet推出配置.所以问自己以下问题.
>我希望机器多久更新一次?
>我是否希望它们在安装新内核时自动重启,或者我只是想要通知?
>我们应该在更新期间运行任何特殊命令吗?
>我是否有足够的系统可以交错更新?
当您开始构建配置并回答这些问题时,您可能会发现更多来自您的特定环境.对于一个具体的例子,我做的是这样的:
>对于我的大多数系统,每周更新一次,通过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函数,并使用不同的命令行开关调用它们.然后,您可以通过检查文件声明中的操作系统事实来推出正确的脚本,或者对cron条目进行模板化并使用相同的事实来决定使用哪个开关.
使用经过良好测试的脚本,这种方法已经很好地完成了.事实上,这个设置已经成功使用了几年来处理数百个系统.当内核打包器开始向文件添加越来越多级别的次要版本并且比较例程阻塞时,我们偶尔会看到打嗝.