Chef

用 Chef Solo 覆蓋屬性

  • July 15, 2012

我正在嘗試使用 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

謝謝。

唔。應該有廚師輸出表明出了什麼問題。

查看食譜,我看到它正在嘗試將 maven 3 下載為: http: //www.apache.org/dist/maven/binaries/apache-maven-3.0.3-bin.tar.gz(如 maven 中所指定/attributes/default.rb,作為 maven.3.url 屬性)。

如果您嘗試獲取該 URL,您將得到 404。因此,食譜顯然因此而損壞。不過,這應該顯示在廚師執行日誌中。

您可以嘗試修改食譜,因為它已經過時了。您還可以嘗試將節點的 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"
   }
},

引用自:https://serverfault.com/questions/407818