使一台机器看起来像包装的其余部分

我已经接受了一个艰巨的任务,就是将其中一台“原始”机器的软件包部署到其他机器上 – 总共大约有120台机器。 所有的机器都运行CentOS 6.8。 高级用户已经在原始机器上进行了function检查,并认为它值得所有的testing/模拟运行等。

你可能会认为这会像在原始机器上安装yum list> pristinemachine_pkgs.txt一样简单,然后在其他机器上安装yum install $(cat pristinemachine_pkgs.txt) 。 然而,在产生“包不可用”的yum结果中有足够的差异。 什么工作是这样的:

rpm -qa --qf="%{NAME}.%{ARCH}\n" | sort > pristinemachine_pkgs.txt 

然后,在testing机器上:

 yum install $(cat pristinemachine_pkgs.txt) 

但是,在这样做之后,我从原始机器和testing机器中find了一些问题。 显然,我的前任暂时启用了EPEL回购协议,安装了软件包,取消了回购协议,并安装了一次性的RPM。 谢天谢地,这个清单并不是那么庞大。 对于那些想知道我是怎么想到的,我在两台机器上运行了前一个RPM清单命令,并且运行了sdiff:

 http://pastebin.com/pFempAZN 

然后从右列复制/粘贴项目到一个新的文件,现在正试图想出一些同时阅读行yum info extrarpms.txttypes的交易分析原始回购。 我有两个问题grep'ing:

 for i in $(cat extrarpms.txt); do yum info $i | grep Name && grep From; done 

这里是extrarpms.txt的pastebin以供参考: http ://pastebin.com/VvPgU3vN

我们的环境目前不允许像Ansible,Puppet,Chef,Salt等这样的configurationpipe理解决scheme(但是我正在纠缠它们)。不幸的是,这不是我所能做到的。 最后,我需要rpm -nodeps -ev从sdiff的输出的左列的候选机器上的RPM列表。 我们害怕做yum擦除$(cat badpkgs.txt),因为我们已经被yum咬了一口,之前它已经删除了更多的东西。 因此–nodeps选项。

所以,总之,如果你们中的任何一个人被委任了类似的东西,那么你们如何解决这个问题,并不能从原始机器列表中下载与候选机器不匹配的单个RPM,

 for i in $(cat newpkgs.txt) do; rpm --nodeps -ivh $i; done 

对于那些yum info显示没有从任何回购安装的软件包?