2017-07-31 49 views
0

但是,我一直在使用knife node edit [node_name]編輯節點,我想節省一些時間並編寫一個腳本,它將自動將一個屬性集添加到多個節點清單中。如何修改shell腳本中的節點屬性?

我想通過某種方式將以下內容添加到bash腳本中的「普通」部分:{}部分。

"borg": { 
    "client": { 
    "backup_server_override": "10.140.4.141" 
    } 
}, 

是否有一個命令,或者這樣我可以做到這一點,而不使用刀節點編輯,並避免了交互式編輯器?

回答

2

退房knife execnodes.transform,可能會做你想做的:

knife exec -E 'nodes.transform ("*:*") {|n| n.normal["whatever"] = "something" }' 
+0

這個偉大的工程。如何添加屬性到[「無論」],我想要做這樣的事情:「normal」:{「whatever」:{「more」:{「apple」:「orange」}}}} – MichaelICE

+0

' n.normal ['whatever'] ['more'] ['apple'] ='orange'',就像在食譜代碼中一樣。 – coderanger

+0

我搞砸了,並提出了一些工作:/ usr/local/bin/knife exec -E'nodes.transform(「*:some_node」){| n | n.normal_attrs [「whatever」] = {「test1」=> {「test1」=>「123456」}};}'; – MichaelICE

相關問題