2017-03-28 20 views
0

git cookbookは、適切なバージョンをダウンロードするために使用するURLにエラーがあります。 urlはデフォルトの属性として属性ファイルに設定されているので、URLを静的なもので上書きすることはできますが、動作しません。シェフが料理本のデフォルト属性を上書きする

case node['platform_family'] 
when 'windows' 
    default['git']['version'] = '2.8.1' 
    if node['kernel']['machine'] == 'x86_64' 
    default['git']['architecture'] = '64' 
    default['git']['checksum'] = '5e5283990cc91d1e9bd0858f8411e7d0afb70ce26e23680252fb4869288c7cfb' 
    else 
    default['git']['architecture'] = '32' 
default['git']['checksum'] = '17418c2e507243b9c98db161e9e5e8041d958b93ce6078530569b8edaec6b8a4' 
    end 
    default['git']['url'] = 'https://github.com/git-for-windows/git/releases/download/v%{version}.windows.1/Git-%{version}-%{architecture}-bit.exe' 

料理は私のmetadata.rbファイルに依存関係として含まれており、私のレシピでリソースとして使用されている:ここでのgitクックブックからのコードがあります。それはランリストの一部ではありません。私は動作しませんでしたので、

"name": "web", 
    "description": "Web Server Role.", 
    "json_class": "Chef::Role", 
    "default_attributes": { 
    "chef_client": { 
     "interval": 300, 
     "splay": 60 
    }, 
    "git": { 
     "url": "a test string" 
    } 
    },... 

のように私の役割ファイル内のURLを上書きしようとしましたので、私は、デフォルト値としての私のレシピの属性ファイルに追加しようとした、それは動作しませんでしたとき、Iまだ動作しなかったoverride!メソッドを試しました。

私は、宣言したときに属性が存在しないことと、gitレシピによって上書きされるという問題が原因だと思います。

私はそれを回避する方法がわかりません。代わりにdefault_attributes

+0

あなたのレシピフォルダに属性/ default.rbに ''デフォルトの[ 'gitの'] [ 'URL']を配置しようとしましたか? – glg

+0

はい、ここではうまくいかなかったのですが、現在は 'override '[' git '] [' url '] =' test string'' – richbai90

答えて

1

使用override_attributes

"name": "web", 
"description": "Web Server Role.", 
"json_class": "Chef::Role", 
"default_attributes": { 
    "chef_client": { 
    "interval": 300, 
    "splay": 60 
    } 
}, 
"override_attributes": { 
    "git": { 
    "url": "a test string" 
    } 
},... 
関連する問題