Skip to content

Instantly share code, notes, and snippets.

@ranjib
Last active July 24, 2020 05:55
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ranjib/5528965 to your computer and use it in GitHub Desktop.
Save ranjib/5528965 to your computer and use it in GitHub Desktop.
require 'chef'
Chef::Config.from_file('knife.rb')
envs = Chef::Environment.list.keys
q = Chef::Search::Query.new
envs.each do |e|
constrained_cookbooks = Chef::Environment.load(e).cookbook_versions.keys
all_cookbooks =[]
nodes = q.search(:node, "chef_environment:#{e}").first.reject(&:nil?)
nodes.select{|n| n.attribute?(:recipes)}.each do |n|
n.recipes.map{|r| r.split('::')[0]}.each do |cookbook|
all_cookbooks << cookbook unless all_cookbooks.include?(cookbook)
end
end
puts "Environment: #{e} Unconstrained cookbooks: #{all_cookbooks - constrained_cookbooks} "
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment