cookbooks
目录清理,并将第三方食谱放入
vendor/cookbooks
(不包括git,这样可以保持回购的干净/减少其他开发人员向风投添加/推送伯克斯管理的食谱的机会)。所以我在chef solo provisioner之前添加了一个shell本地provisioner,它运行
berks vendor vendor/cookbooks
并用
cookbook_paths ["cookbooks","vendor/cookbooks"]
. 我的想法是shell local将在chef solo之前运行,并且两个食谱路径都可用。
但是,当我运行packer build时,在AWS构建器开始构建之前,快速解析cookbook路径失败,引用不存在的vendor/cookbooks目录失败。以下是打包机供应器段:
"provisioners" : [
{
"type": "shell-local",
"command": "bundle install && bundle exec berks vendor vendor/cookbooks"
},
{
"type" : "chef-solo",
"cookbook_paths" : ["cookbooks","vendor/cookbooks"],
"environments_path" : "environments",
"roles_path" : "roles",
"run_list" : ["role[somerole]"]
}
],
amazon-ebs output will be in this color.
1 error(s) occurred:
* Bad cookbook path 'vendor/cookbooks': stat vendor/cookbooks: no such file or directory
packer中是否有一个机制在解析chef solo provisioner之前首先运行shell本地?我希望避免在构建器中运行berks(也就是说,我希望运行packer的主机解析食谱),理想情况下,我希望只在packer中运行,就像在运行berks的包装器脚本中一样。我已经解决了这个问题
,但如果可能的话,也希望避开此路线。