使用Chef

时间:2015-05-26 09:19:20

标签: chef

情况是标准食谱chef-provisioning的安装将失败,因为Nokogiri gem无法使用本机扩展进行编译。这是Ubuntu和CentOS的情况。肯定是一个错误 - 现在我试图找到一个解决方法。

编译失败是由缺少的包引起的。在Ubuntu包liblzma-devzlib1g-dev

要安装缺少的包,我创建了一个单独的食谱fix-missing。我的运行列表是fix-missing,然后是chef-provisioning

看来Chef忽略了运行列表顺序。出乎意料的是,我还没有完全理解这一点,但无论如何,如果不使用运行列表,应该怎么做呢?

我的解决方法是首先创建仅包含fix-missing的运行列表,然后运行该列表,然后更新运行列表以包含chef-provisioning

运行列表,两者都将失败。

1 个答案:

答案 0 :(得分:0)

您遇到的问题是由于chef-gem在编译时安装了gem(允许在之后的配方中使用gem)。

如果您之前需要安装软件包,那么您在运行列表中使用配方(主厨尊重您提供的订单)的正确路径,但您必须在{{3}强制执行此软件包安装也是。

package "libzma-dev" do
 action :nothing
end.run_action(:install)