自动更新所有 centos 软件包(可能影响用户指定的软件包列表的软件包除外)的最佳方法是什么?

自动更新所有 centos 软件包(可能影响用户指定的软件包列表的软件包除外)的最佳方法是什么?

进一步来说...

我想要做的事情是:

  1. 集中式包管理。
  2. 无需下载整个 repos 即可保持系统更新(例如,如果系统上没有 Libreoffice,我不想下载任何 Libreoffice 软件包)。
  3. 在部署软件包之前运行自动化测试,并且
  4. 对特定的包(对任务至关重要)及其依赖项进行更详尽的测试(包括自动化组件),这需要一些人工干预才能批准。

实际上,保持所有内容都是最新的并不一定 - 最重要的是自动测试并保持非关键任务包中的安全补丁的更新(以及对关键任务补丁进行更严格的测试)。

我目前研究过的内容

我知道太空行走纸浆,但由于一些原因(文档质量低劣,无论给定系统上有什么,都需要丑陋的黑客来避免不必要地下载整个大型存储库),我已将其排除在外。我们确实使用 Puppet,但就其本身而言,它并不是适合这项工作的工具。

yum单独使用肯定可以满足我的一些需求,但(除非我遗漏了某些功能)它似乎也不是完成这项工作的合适工具。目前,我也在研究 foreman,但我不确定这是否是合适的选择,而且我知道它提供的大部分功能实际上并不是针对此类问题的。

答案1

  1. 使用 yum 的“排除”功能来实现这一点。若要永久保留,请将以下行添加到 yum 配置(在 /etc/yum.conf 中):

    exclude=python3* php*
    
  2. 如果您想保持最新状态,而又不想下载整个存储库,只需应用安全勘误表。为此,请使用 yum 安全插件,然后运行yum --security updateyum updateinfo list bugzillas仅下载更新并安装它们。

  3. 对于自动化,有数百种选择。对于自动化企业工作负载,您可能希望使用更强大的工具,例如 Chef 或 Puppet。评论中的链接看起来是一个很好的资源。

  4. 再次,使用排除选项以及敏感包列表以确保它们不会被触碰。

相关内容