2013-01-22 51 views
0

我試圖用捲曲的傀儡文件來創建虛擬主機的CouchDB創建虛擬主機:木偶:捲曲調用CouchDB中

exec {'setup-vhosts': 
    command => "curl -X PUT http://127.0.0.1:5984/_config/vhosts/mycool.url -d '"/my_database"'", 
    require => [Service['couchdb'], Package['curl']], 
} 

但我發現了這個錯誤:在「 語法錯誤」 「;預計'}'在/tmp/vagrant-puppet/modules-0/couchdb/manifests/init.pp:19

如果我在機器上執行命令,它完美的工作。我如何正確地轉義命令?

回答

0

我想你應該逃避雙引號,或者只在字符串中使用單引號。

exec {'setup-vhosts': 
    command => "curl -X PUT http://127.0.0.1:5984/_config/vhosts/mycool.url -d \"/my_database\"", 
    require => [Service['couchdb'], Package['curl']], 
} 

OR

exec {'setup-vhosts': 
    command => "curl -X PUT http://127.0.0.1:5984/_config/vhosts/mycool.url -d '/my_database'", 
    require => [Service['couchdb'], Package['curl']], 
} 

另外,還要注意you'l要防止此exec從每個puppetrun運行。

+0

對於這兩個選項,我將此作爲響應{「error」:「bad_request」,「reason」:「invalid UTF-8 JSON」} – tom

+0

這將是一個CouchDB錯誤,Puppet正在工作。 對不起,我不知道CouchDB。 –

0

我沒有使用以下固定它:

exec {'setup-vhosts': 
    command => "curl -X PUT http://127.0.0.1:5984/_config/vhosts/mycool.url -d \'\"/my_database\"\'", 
    require => [Service['couchdb'], Package['curl']], 
} 

感謝GER阿珀爾多倫誰指着我讓使用正確的轉義。