使用Puppet删除“X Windows系统”和Gnome

我试图删除生产RHEL / CentOS机器上使用Puppet(我不能安装操作系统)的XWindows和Gnome等不必要的服务。

从我所能告诉的,“groupremove”不被支持/推荐,因为它不完全是“groupinstall”的“反面”。 然后有一个像rpm -q --group "User Interface/X"这样的命令,我相信它应该使用exec {},但是必须有一个更好的方法来完成它,因为我确信它一定是做了什么相当有规律。

任何人? 非常感谢!

这里有两个来自Puppet Labs的开放门票。

http://projects.puppetlabs.com/issues/5175

http://projects.puppetlabs.com/issues/11995

目前都没有太多的活动。 你大概可以让他们赞成,这可能会提高开发人员的意识。

部分与团队有关的问题是,并不是所有的软件包pipe理者都拥有它们,在声明式系统pipe理的世界中build模是有点奇怪的。

您也可能会遇到卸载组并意外卸载其他软件包(属于其他组)的情况。 虽然这是所有types的卸载已知的风险。

现在,你的执行可能是最优雅的方式。 (除了不要安装你不想开始的软件包)。

在最近版本的yum中,有一个groupremove_leaf_only选项可以用来覆盖大多数情况下你想删除软件包组。 它只会卸载属于给定组的软件包,而不会卸载到系统上“已安装”的任何其他组。 它的工作原理是这样的: yum --setopt=groupremove_leaf_only=1 group remove <group name>

groupremove_leaf_only选项是在yum 3.2.28中添加的,这意味着RHEL 6有它,但是RHEL 5没有。

我通过写我自己的types来pipe理yum包组来处理这个问题。 它保持自己的安装组列表,所以它不会被模糊匹配yum确定是否安装组混淆。 如果要求卸载已安装的组,则在RHEL 6和Fedora 17上使用groupremove_leaf_only ; 在RHEL 5上,它会执行一个直接的yum group remove <group> ,然后将yum group install到所有其他应该安装的组上。 这并不理想,但这是我想到的最好的方法。