【发布时间】:2014-04-06 09:58:12
【问题描述】:
我正在调整 Apache 食谱以使用 2.4 Apache。 Opscode 食谱目前正在失败,因为它正在生成带有 LockFile 关键字的 conf 文件,该关键字从 Apache 2.4 关键字列表中排除。
我想制定一个通用解决方案,并根据软件版本填充我的 conf 文件。为此,我必须找出已安装软件的版本。同样的问题已经困扰了我大约一段时间,但我一直在设法避免它。由于我一遍又一遍地处理它,我想问一下:
如果说明书没有指定,如何找出已安装软件包/软件的版本,即安装最新的可用版本?
注意:请不要告诉我将命令传递给底层 shell。我想知道是否有更好的、更多的……Chefy 方式?也许与 Ohai 有关?
编辑:似乎我被误解了。我想知道是否有抽象平台层的解决方案(就像 Ohai 所做的那样),我会说类似gimme_version('apache') 并获取已安装的 apache 版本。我想避免在 case node['platform_family'] when... when... when 里面写平台特定的代码。
【问题讨论】:
-
不...而且 Ohai 只是在后台运行 shell 命令
-
是的,但从上面看它是独立于平台的,这就是我需要的 - 独立于平台的解决方案。
-
这就是 Ohai 的重点——它运行特定于平台的命令
-
@sethvargo,Mark_O'Connor,抱歉打扰。看来我误解了。我知道 Ohai 是如何运作的。我要求一种 Ruby/Chef 方法,将特定于平台的代码保留在引擎盖下(或以其他方式分离),并使我的食谱变得漂亮、干净且独立于平台。你知道类似的事情吗?谢谢!
标签: chef-infra chef-recipe chef-solo