尝试将非常临时的环境带入更加标准化和可管理的状态。
在我的用例中,我想禁用所有非 Red Hat 存储库(由 subscription-manager 插件提供)。但是,如果有一个灵活的解决方案可以禁用所有不受 Puppet 管理的存储库,那就太好了。
有什么建议么?
答案1
这取决于您如何通过 puppet 提供 repo 配置。您是否将文件放在 /etc/yum/repos.d 下或自定义提供程序下?
您可以采取措施确保 /etc/yum.repos.d/ 目录已清除(即,不包含 puppet 未提供的文件),检查 puppet 类型参考中的文件资源以了解详细信息。这种方法的问题在于,一些第三方应用程序提供自己的存储库并将其打包到 rpm:s 中,后者会在 puppet 运行时安装。在编写 puppetclasses 时,很难考虑到这一点。
根据您计划如何实现 yum repo 配置,我建议您将 /etc/yum.conf 中的“reposdir”更改为“/etc/yum.repos.managed.d/”之类的内容,并将 puppet 配置的 repos 放在该目录中。这样,yum 将不会从标准 repo 配置目录中读取任何内容,而只会从 puppet 实现提供的目录中读取内容。
答案2
为什么不让 Puppet 来做这件事呢?
告诉 Puppet 仅启用那些需要启用的存储库并禁用其他所有存储库。
另一个想法是,在 Puppet 管理的 repo 名称中添加一些前缀,这样您就可以轻松识别它们。然后禁用除 RedHat 和带前缀的 repos 之外的所有内容。