YUM,“patchlevel”和redhat / centos上的DTAP街道

有没有办法让yum更新到某个patchlevel?

我总是向我的开发者保证Dev,Test,Acc和Prod之间的服务器与软件版本相同。 但是当你通过红帽networking使用yum时,无论如何它都会更新到最新版本。

当你在dev或者Test之外推出一个服务器的时候,问题就会出现。 您当然可以从此更新过程中排除重要的软件包。 但是,如果从上次更新以来有新版本可用,其他软件包仍然会更新为新版本。 这样你的服务器将不会完全相同。

有没有一种方法(通过百胜餐饮)来确保您将获得与DTAP街道中其他服务器完全相同的包assembly置。

这是configurationpipe理的美丽…例如使用Puppet,我可以ensure => latest甚至ensure => '1.2.2-7.el6'

你能举一个你想要控制的特定包的例子吗?

我问,因为这是Red Hat / CentOS,并且在整个服务器产品的整个生命周期中,都要做大量的努力来保持软件包的主版本兼容。 实际上,运行package-0.17-39.el6package-0.17-43.el6应该没有关系。 更不用说错误和安全修补程序不断回溯…

所以在某些方面,我的开发,testing和生产服务器看起来相似,只是因为它们与RHEL / CentOS版本相同,并且具有相同的软件包。 但小版本可能会有所不同,具体取决于安装date,补丁计划,正常运行时间/可用性要求,硬件平台等情况。

我的build议:

  • 固定与你有关的特定版本的软件包(通过yum,本地回购或configurationpipe理)。
  • 禁用autoupdates。
  • 开发一个包含整个环境的补丁程序。
  • 修改您的构build过程。
  • 当然要实现configurationpipe理。

我们通过CentOS库(+我们使用的所有其他软件)的本地镜像,并通过configurationpipe理系统configuration我们的所有服务器来仅使用内部镜像库来实现这一点。

这样我们就可以控制补丁中显示的补丁的确切时间。
新安装的服务器将具有与已经安装的系统相同的包(在kickstart期间,我们已经指向了我们的内部镜像)。
我们有不同的存储库服务器进行质量保证和生产。
这样,我们也可以先在QA服务器上testing补丁,然后将这个库同步到生产库。

可能有更复杂的系统来pipe理这个(太空行走?),但是这个简单的解决scheme对我们来说是正确的。