有没有办法让 yum 更新到某个补丁级别?
我总是向我的开发人员保证 Dev、Test、Acc 和 Prod 之间的服务器与软件版本相同。但是,当您通过 redhat 网络使用 yum 时,无论如何它都会更新到最新版本。
当您部署到开发或测试之外的服务器时,问题就出现了。您当然可以从这个更新过程中排除重要的包。但是,如果自您上次更新以来有可用的新版本,则其他各种软件包仍将更新到较新的版本。这样你的服务器就不会完全一样了。
有没有办法(通过 yum)确定您将获得与 DTAP 街道中的其他服务器完全相同的包配置。
为此,我们拥有 CentOS 存储库(+我们使用的所有其他软件)的本地镜像,并通过配置管理系统配置我们所有的服务器以仅使用内部镜像存储库。
这样我们就可以控制补丁出现在 repo 中的确切时间。
新安装的服务器将具有与已安装系统相同的软件包(在 kickstart 期间我们已经指向我们的内部镜像)。
我们有用于 QA 和生产的不同存储库服务器。
这样,我们还可以先在 QA 服务器上测试补丁,然后将此存储库同步到生产存储库。
可能有更复杂的系统来管理这个(太空行走?),但这个简单的解决方案对我们很有效。
这就是配置管理的美妙之处……例如使用 Puppet,我可以
ensure => latest
甚至ensure => '1.2.2-7.el6'
您能否举例说明您希望控制其版本的特定软件包?
我问是因为这是 Red Hat/CentOS,并且在服务器产品的整个生命周期中,为了保持软件包的主要版本在次要版本之间兼容,我们付出了巨大的努力。实际上,您是在跑步
package-0.17-39.el6
还是在package-0.17-43.el6
. 更不用说不断向后移植的错误和安全修复......所以在某些方面,我的开发、测试和生产服务器看起来很相似,只是它们是 RHEL/CentOS 的相同版本并且具有相同的软件包。但次要版本可能会发生变化,具体取决于安装日期、补丁计划、正常运行时间/可用性要求、硬件平台等情况。
我的建议: