2017-07-31 103 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