2013-03-28 144 views
5

我有一個Web服務器,基本上接受刀ec2創建服務器命令的輸入。如何通過廚師食譜加載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屬性似乎使用Ruby哈希而不是JSON加載

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確實不是加載-j json-attributes。

擺脫-d選項。 Json適當地加載。

+0

至少在廚師11.12.4中,即使您還傳遞模板(-d模板),也可以傳遞-j json屬性。 – Doug