标准软件包列表

我正在学习傀儡系统,现在需要做下一个任务。 我们有几台服务器与同一个操作系统(Altlinux p6,t6) – 傀儡代理商,并有一个木偶大师。

在代理上有一些软件包安装,例如。 首先200个包,300秒…但我们只需要180个安装。 我们知道必要包裹的名字,但不知道其他(不必要的包裹)的名字。

我的问题是:如何检查或安装(如果尚未安装)必要的软件包并删除其他软件包(我们不知道其他已安装软件包的名称)?

请帮助

WBR Valentin

我已经看到了这一点,得出的结论是,虽然可以这样做,通过使用Package {ensure => absent}来定义puppet模块来获得你想要的包,但是还没有一个好的方法来

据我所知,没有一个本地方法批量删除包。 我想了解使用foreach循环来从configuration文件读取行分隔列表之后,将不需要的软件包写入脚本。

最后,我发现了最干净的解决scheme来构build新的服务器,并从一开始就使用Puppet进行所有pipe理。 你的结果可能有所不同

这应该工作:

resources { 'package': purge => true, } 

起初,我会这样做:

 resources { 'package': purge => true, noop => true, } 

然后检查日志,看看会做什么。 只有当我感到满意,它工作的很好,我会删除noop

无论如何,它告诉Puppet删除typespackage所有资源(如名称所示 – resource { 'user': purge => true }将删除用户,例如) 被Puppetpipe理。 也就是说,如果你有一个行package { 'x': } ,那么如果安装了这个包就不会被删除。 任何没有这种声明的包都将被删除。

木偶只能做你告诉它做的只不过是一个人可以为你做而不用一些手段产生一个列表。 你需要告诉木偶哪些包不属于机器。

Timbuild议的最简单的解决scheme是使用Puppet正确地重新映像和构build机器。