Skip to content

Instantly share code, notes, and snippets.

@vinyar
Last active August 29, 2015 14:23
Show Gist options
  • Save vinyar/6f6883a6d6cbab9b84f2 to your computer and use it in GitHub Desktop.
Save vinyar/6f6883a6d6cbab9b84f2 to your computer and use it in GitHub Desktop.
fix node permissions for chef server 10 to 12 migration
#!/usr/bin/env ruby
require 'rubygems'
require 'chef/knife'
Chef::Config.from_file(File.join(Chef::Knife.chef_config_dir, 'knife.rb'))
rest = Chef::REST.new(Chef::Config[:chef_server_url])
Chef::Node.list.each do |node|
%w{read update delete grant}.each do |perm|
ace = rest.get("nodes/#{node[0]}/_acl")[perm]
ace['actors'] << node[0] unless ace['actors'].include?(node[0])
rest.put("nodes/#{node[0]}/_acl/#{perm}", perm => ace)
puts "Client \"#{node[0]}\" granted \"#{perm}\" access on node \"#{node[0]}\""
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment