带有 chef-solo 配置的 Packer 什么都不做

Packer with chef-solo provisioning does nothing

我开始使用 Packer,使用 chef-solo 进行配置。我有一个非常简单的食谱 (default.rb),其中包含以下几行:

package "git"
package "ruby"
package "rubygems"

我能够成功地使用 Vagrant 配置图像。我现在正在尝试将此供应步骤移至 Packer,但是当我执行 packer build 时,它似乎 运行 没有配方。

virtualbox-iso: Running handlers complete
virtualbox-iso: Chef Client finished, 0/0 resources updated in 1.818437359 seconds

我的 Packer 模板的配置部分是:

{
   "type": "chef-solo",
   "cookbook_paths": ["/cookbooks"]
}

这个问题的第二部分(我假设它是相关的)是 run_list 配置选项是什么?

The Packer documentation 表示它在同一个文件中,称为 run_list,默认情况下为空。因此,您应该在名为 run_list.

的参数中将食谱的名称作为单元素字符串数组提供

对于像我这样正在寻找答案的初学者,我通过添加 run_list 来解决这个问题,如下所示:

"run_list": ["git::default"]

'git' 是 metadata.rb 文件中的名称,'default' 是文件名或配方(如果我的术语正确的话)。我的cookbook目录结构如下:

~/Projects/Packer-Templates/Cookbooks $ find .
.
./ruby-environment
./ruby-environment/metadata.rb
./ruby-environment/recipes
./ruby-environment/recipes/default.rb