web-dev-qa-db-ja.com

ChefSoloで属性をオーバーライドする

ChefSoloと次のクックブックを使用してMaven3をインストールしようとしています。

http://community.opscode.com/cookbooks/maven

クックブックはデフォルトでMaven2をインストールしますが、初めて実行したときは、期待どおりにMaven2がインストールされました。

後で、solo.jsonファイルを次のように変更しました。

{
    "maven": {
        "version": "3"
    },
    "run_list": [
        "recipe[Java]",
        "recipe[maven]"
    ]
}

しかし、ChefはMavenをバージョン3に更新していません。これは、オーバーライド属性を誤って指定しているためか、その他の問題があるためかはわかりません。私はこれを参照用に使用しています:

http://wiki.opscode.com/display/chef/Chef+Solo#ChefSolo-JSON%2CAttributesandRecipes

ありがとう。

2
user19509

うーん。何が悪いのかを示すシェフの出力があるはずです。

クックブックを見ると、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"
    }
},
2
cjc