从技术角度来说,如果想使用 yum 更新 RHEL 或 CentOS 服务器,但只能更新到某个版本日期(即不要安装在 X 日期之后发布的任何更新),这是否可行,如果可以,如何操作?
到目前为止,我能想到的唯一方法是使用专用的卫星服务器或本地存储库,并且在某个日期之后不再同步它,但这不是我想要的。
我之所以问这个问题,是因为我们有一个中央(共享)卫星服务器,为多个客户提供服务,其中一位客户要求将其所有服务器(包括正在构建的新服务器)保持在同一更新级别,直到它们准备好升级为止。如果没有专门为该客户创建的新专用卫星(我们不会在其 X 日期之后同步),我能想到的唯一方法就是阻止服务器(包括新构建的服务器)在某个发布日期之后进行更新。
我到处搜索,并没有找到任何东西(比如可以执行此操作的 yum 选项或插件)来表明这是可能的,但如果我没有搜索正确的东西,我会问你。
如果问题不清楚,请告诉我。
答案1
听起来这个客户要么在卫星内部拥有自己的组织(然后你可以授予他们组织管理权限,如果你愿意的话),要么你应该克隆你需要的频道,然后,当他们说开始时,你就进入每个克隆的频道并更新它(现在想不起来这个术语,但它在“同步”按钮旁边。
当您最初克隆频道时,您可以选择不克隆/全部克隆/选定勘误表。在 5.6(或者是 5.5?)中,他们添加了一个克隆选项以匹配特定版本。在此之前,您必须使用脚本(不受支持?)
不过需要注意的是,更新时,请通过界面的“管理频道”部分进行,而不是通过界面的“勘误表”部分进行,否则您会发疯的。
请注意,Red Hat 有一些用于管理 SOE(标准操作环境)的 RHEL 5 和 RHEL 6 最佳实践指南,您可能会感兴趣。
答案2
如果您想要拥有多台具有完全相同软件包和版本的机器,则可以使用yum load-ts
(yum load-transaction
)
从man yum
:
加载事务
此命令将重新加载已保存的 yum 事务文件,这样您可以在一台机器上运行事务,然后在另一台机器上使用。获取已保存的 yum 事务文件的两种常用方法是通过“yum -q history addon-info last saved_tx”或通过。当事务已解决但未运行时,自动保存在 $TMPDIR/yum_save_tx.* 中。