如何获取Chef recipe的最新java包名/版本?

时间:2016-03-02 13:02:55

标签: package chef

我想收集yum频道中可用的最新java版本。那么我可以告知客户他们是否乐意进行升级。在这种情况下,他们将在任何更改之前了解使用Chef包升级功能的版本。

解决方案: 您可以使用Ohai插件执行此操作,方法是执行类似的命令并存储为属性:

root@servername DEV # yum list all jre1.*[5,6,7,8,9].* | tail -n 1
jre1.8.0_72.x86_64        1.8.0_72-fcs         repositoryname
root@servername DEV #

这是在一个帖子中讨论的,我确认它有效。 How to find out version of software package installed on the node?

我正在寻找简化这种方法或尽可能优雅的方式。 基本上,问题是什么版本将安装yum upgrade / Chef包升级?

1 个答案:

答案 0 :(得分:0)

使用shell_out应该针对您的用例,即使我没有真正实现所有这一切的最终目标。

node.set['whaterver']['attribute'] = shell_out("yum list all jre1.*[5,6,7,8,9].* | tail -n 1 | cut -f 2").stdout.strip

文档是here。 Recipe DSL shell_out是一个包装器,它的工作方式与Mixin::ShellOut.new一样,具有一些健全性检查。