From: Tom Hughes Date: Sat, 15 Feb 2020 18:36:23 +0000 (+0000) Subject: Only cleanup sysctl keys that are no longer set X-Git-Url: https://git.openstreetmap.org/chef.git/commitdiff_plain/478443c5da25106a63145368c9992a6cb806650c Only cleanup sysctl keys that are no longer set --- diff --git a/cookbooks/sysctl/recipes/default.rb b/cookbooks/sysctl/recipes/default.rb index bf9860e0c..a2facc063 100644 --- a/cookbooks/sysctl/recipes/default.rb +++ b/cookbooks/sysctl/recipes/default.rb @@ -23,19 +23,27 @@ end if node[:virtualization][:role] != "guest" || node[:virtualization][:system] != "lxd" + keys = [] + + Dir.new("/etc/sysctl.d").each_entry do |file| + next unless file =~ /^99-chef-(.*)\.conf$/ + + keys.push(Regexp.last_match(1)) + end + node[:sysctl].each_value do |group| group[:parameters].each do |key, value| sysctl key do value value # comment group[:comment] end + + keys.delete(key) end end - Dir.new("/etc/sysctl.d").each_entry do |file| - next unless file =~ /^99-chef-(.*)\.conf$/ - - sysctl Regexp.last_match(1) do + keys.each do |key| + sysctl key do action :remove end end