2013-03-28 13 views
5

私は基本的にナイフec2 create serverコマンドの入力を受け付けるWebサーバーを持っています。私のナイフコマンドでシェフのレシピを使ってJSON属性をナイフで渡す方法を教えてください。

、私はドキュメントから

-j '{"branch":"clone"}' 

に渡し、私は私がロードされている私のレシピでこれを行うことができるだろうと思った:

@@branch = node['branch'] 
... 
git clone [email protected]/blah -b #{@@branch} 

しかし、gitのクローン@@branchが返されないため失敗しています。または、少なくともシェフのログには結果の出力が表示されます。

git clone [email protected]/blah -b 

~Git error showing options and appropriate input~ 

渡されたJSON属性でロードするにはどうすればよいですか?正しい方法は何ですか?

編集:

私は手動でナイフコマンドに入れ、JSONの属性ではなく、JSONのRubyのハッシュを使用して読み込むように見える

JSON Attributes: {"branch"=>"Air"}

最終編集:

私のコマンドを実行します。

sudo knife ec2 server create -x ubuntu -i ~/.ssh/key.pem -I ami-0eca6e67 -d ubuntu-12.04 -j '{ "branch" : "clone" }' -Z us-east-1a -s subnet-6827ec00 -f c1.medium -g sg-bc9d86d0 -r 'role[role]'

以下の回答。

答えて

4

すでに存在するブートストラップテンプレートを使用すると、-d ubuntu-12.04、ナイフec2はNOT load -j json-attributesです。

-dオプションを削除してください。 Jsonは適切に読み込みます。

+0

少なくともChef 11.12.4では、テンプレート(-dテンプレート)も渡しても-j json-attributesを渡すことができます。 – Doug

関連する問題