【问题标题】:How to override Attributes in packer chef solo provisioner如何覆盖打包厨师单独供应商中的属性
【发布时间】:2016-05-27 09:56:14
【问题描述】:
我的打包机代码包含打包机主厨单独供应商
{
"type": "chef-solo",
"cookbook_paths": ["chef/cookbooks/vendor"],
"run_list": ["recipe[cicada-jenkins-cookbook::default]","recipe[cicada-jenkins-cookbook::support_tools]","recipe[cicada-jenkins-cookbook::cft_seed_dsl]","recipe[cicada-jenkins-cookbook::terraform_seed_dsl]"]
}
在这里我需要覆盖属性如何在打包器中传递它们
【问题讨论】:
标签:
chef-solo
packer
hashicorp-otto
【解决方案1】:
{
"type": "chef-solo",
"cookbook_paths": ["chef/cookbooks/vendor"],
"roles_path": "chef/roles",
"json": {
"jenkins": {
"master": {
"port": 8080
},
"executor": {
"timeout": 300
}
},
"jenkins-cookbook": {
"admin_user": "uname",
"admin_pass": "pwd"
}
},
"run_list":["role[jenkins]"]
}
- 根据打包器文档,我们可以以 json 的形式传递节点属性
【解决方案2】:
与其覆盖 Packer“json”属性中的值,不如尝试在 Chef 角色中定义属性覆盖。然后只需使用“roles_path”指向本地磁盘上角色目录的位置。
"provisioners":
[
{
"type": "chef-solo",
"cookbook_paths": ["cookbooks"],
"roles_path": "cookbooks/dev-boxes/roles",
"run_list": [
"role[java]",
"role[sbt]",
"recipe[dev-boxes::recipe1]",
"recipe[dev-boxes::recipe2]"
]
}
],