我该如何编辑EC2节点的厨师属性,使用刀

编程入门 行业动态 更新时间:2024-10-25 08:21:57
本文介绍了我该如何编辑EC2节点的厨师属性,使用刀的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想用一个刀节点命令编辑EC2节点的node_data。 我可以用下面的命令做手工。 刀节点编辑NODE_NAME 它会生成一个JSON,我需要编辑。

I want to edit ec2 node's node_data using a knife node command. I can manually do it by using below command. knife node edit NODE_NAME It will generate a json which I need to edit.

"name": "NODE-1", 3 "chef_environment": "test", 4 "normal": { 5 "node_data": { 6 "version": "23690ecc9c572e47db242bfad1296388f91da1e9", 7 "depot_path": "s3.amazonaws/builds/", 8 "source_repo": "softwares/" 9 }, 10 "tags": [ 11 12 ] 13 }, 14 "run_list": [ 15 "role[my-role]" 16 ] 17 }

我想编辑 node_data 在JSON。 如果让我来编辑run_list的存在对于命令 run_list添加节点刀节点的作用[ROLE_NAME] 我需要类似于此命令的东西。

I want to edit node_data in that json. If I had to edit run_list the there is a command for that knife node run_list add node 'role[ROLE_NAME]' I need something similar to this command.

推荐答案

我添加了一个刀插件添加到node_data。

I have added a knife plugin to add to node_data.

require 'chef/knife' require 'chef/knife/core/node_presenter' class Chef class Knife class NodeJson_dataUpdate < Knife deps do require 'chef/node' require 'json' end banner "knife node json_data update [NODE] [JSON_NODE_DATA]" def run node = Chef::Node.load(@name_args[0]) node_data = @name_args[1] update_node_data(node, node_data) node.save output(node.normal.node_data) end def update_node_data(node,node_data) parsed_node_data = JSON.parse(node_data) parsed_node_data.each do |key,val| if key.empty? print "ERROR: Key is empty for value- "+val+". Not adding this to node_data.\n" else node.normal.node_data[key]=val end end end end end end

更多推荐

我该如何编辑EC2节点的厨师属性,使用刀

本文发布于:2023-11-06 06:23:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1562923.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:我该   节点   厨师   属性   编辑

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!