我正在尝试使用 Chef Solo 和以下食谱安装 Maven 3:
http://community.opscode.com/cookbooks/maven
该食谱默认安装 Maven 2,我第一次运行它时,它按预期安装了 Maven 2。
后来我修改了我的solo.json
文件,如下所示:
{
"maven": {
"version": "3"
},
"run_list": [
"recipe[java]",
"recipe[maven]"
]
}
但是 Chef 没有将 Maven 更新到版本 3。我不知道这是因为我错误地指定了 override 属性还是存在其他问题。我以此作为参考:
http://wiki.opscode.com/display/chef/Chef+Solo#ChefSolo-JSON%2CAttributesandRecipes
谢谢。
答案1
嗯。应该有 chef 输出来指示哪里出了问题。
查看食谱,我发现它正在尝试下载 maven 3,如下所示:http://www.apache.org/dist/maven/binaries/apache-maven-3.0.3-bin.tar.gz(如 maven/attributes/default.rb 中指定的 maven.3.url 属性)。
如果您尝试 wget 该 URL,您将得到 404。因此,显然该食谱已因此损坏。不过,这应该显示在 chef 运行日志中。
您可以尝试修改食谱,因为它已经过时了。您还可以尝试将节点的 maven.3.url 属性设置为更新的内容,这样您就不会碰食谱,例如:
"maven": {
"version": "3",
"3": {
"url": "http://www.apache.org/dist/maven/binaries/apache-maven-3.0.4-bin.tar.gz"
}
},
或者,如果您想继续使用 3.0.3:
"maven": {
"version": "3",
"3": {
"url": "http://archive.apache.org/dist/maven/binaries/apache-maven-3.0.3-bin.tar.gz"
}
},