這使我瘋狂,任何幫助都被大量讚賞。通過命令行將屬性傳遞給廚師
當前使用一個配方來運行一個ssh命令,從而該命令接受參數,然後使用它。
轉義字符串引號的轉義完全是瘋了;請幫助我,所以你是我唯一的幫助。 :d
這是字面上的,我需要爲我的SSH:
ssh -i /home/ec2-user/.ssh/Test-Key.pem -o StrictHostKeyChecking=no [email protected] echo '{\"attr\":\"value\"}' | sudo chef-client -o solr-restart -j /dev/stdin
它包裹在一個命令的配方中,像這樣:
command "ssh -i /home/ec2-user/.ssh/Test-Key.pem -o StrictHostKeyChecking=no [email protected] echo '{\"attr\":\"value\"}' | sudo chef-client -o solr-restart -j /dev/stdin"
不管我如何努力和操縱字符串我不能得到輸出是正確的,它要麼刪除json中的轉義字符,要麼增加額外的字符。
我試圖echo '#{madness}'
那裏瘋狂= madness = '{\"portAttribute\":\"'+"#{portNumber}"+'\"}'
但仍沒有運氣,感謝您的幫助。
ISN 't -j通過sdin從兒子讀入?爲了更好地解釋,我傳遞的價值來自一個集合,集合是從廚師服務器獲取的過濾數據子集,我不相信我可以用其他方式來做這件事,至少我沒有遇到。 我有很多節點,我需要過濾集合,然後遍歷該集合依次連接到每個IP地址,但踢球者是每個IP都在特定端口上有服務,這也是我傳遞的。 我正在使用一個配方來運行另一個配方,但這本身導致調用另一個作爲鎖文件的問題...... – null
否-j選項將文件路徑作爲路徑。這通常只在使用舊式自注冊引導程序時(第一次運行時才使用)(通常只有在處理自動縮放系統時才需要)。 – coderanger
哦,我明白了。可能你有我想要實現的另一種解決方案? ONe更優雅,破壞性更小? – null