Skip to content

Instantly share code, notes, and snippets.

@sean-horn
Created June 3, 2015 19:44
Show Gist options
  • Save sean-horn/f74ca91c76ab073de14f to your computer and use it in GitHub Desktop.
Save sean-horn/f74ca91c76ab073de14f to your computer and use it in GitHub Desktop.
chef-server-permissions.rb
#!/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