6

コマンドを使用してec2ノードのnode_dataを編集したいknife node
以下のコマンドを使用して手動で行うことができます。
knife node edit NODE_NAME
編集が必要なjsonが生成されます。

"name": "NODE-1",
  3   "chef_environment": "test",
  4   "normal": {
  5     "node_data": {
  6       "version": "23690ecc9c572e47db242bfad1296388f91da1e9",
  7       "depot_path": "https://s3.amazonaws.com/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 を編集する必要がある場合、そのためのコマンドがあり、
knife node run_list add node 'role[ROLE_NAME]'
このコマンドに似たものが必要です。

4

3 に答える 3

1

あなたがしたい場合は、

新しい属性を追加

knife exec -E "nodes.find(:name => 'NODE-1') { |node|   node.normal_attrs[:attribute_name]='Value' ; node.save; }"

属性を更新する必要があります

それはノード属性タイプに依存します

ノード属性がjsonの場合、このコマンドを実行します

knife exec -E "nodes.find(:name => 'NODE-1') { |node|   node.normal_attrs['node_data'][:attribute_name]= 'Value' ; node.save; }"

ノード属性が配列型の場合

knife exec -E "nodes.find(:name => 'NODE-1') { |node|   node.normal.tags << {'attribute_name'=>'Value',''=>}; node.save; }"
于 2015-02-09T13:44:45.910 に答える