X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/3a4b1c2078cd515e93a5f1bf8967f380fbd1646f..68bbe21da0b2f20cb1856fc68f8cbac9c637285d:/cookbooks/sysctl/recipes/default.rb?ds=sidebyside diff --git a/cookbooks/sysctl/recipes/default.rb b/cookbooks/sysctl/recipes/default.rb index 7a0ed4357..f16537c51 100644 --- a/cookbooks/sysctl/recipes/default.rb +++ b/cookbooks/sysctl/recipes/default.rb @@ -1,14 +1,14 @@ # -# Cookbook Name:: sysctl +# Cookbook:: sysctl # Recipe:: default # -# Copyright 2010, Tom Hughes +# Copyright:: 2010, Tom Hughes # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -17,37 +17,36 @@ # limitations under the License. # -package "procps" do - action :install +file "/etc/sysctl.d/60-chef.conf" do + action :delete end -directory "/etc/sysctl.d" do - owner "root" - group "root" - mode 0755 -end +if node[:virtualization][:role] != "guest" || + (node[:virtualization][:system] != "lxc" && + node[:virtualization][:system] != "lxd" && + node[:virtualization][:system] != "openvz") + keys = [] -execute "sysctl" do - action :nothing - command "/sbin/sysctl -p /etc/sysctl.d/60-chef.conf" -end + Dir.new("/etc/sysctl.d").each_entry do |file| + next unless file =~ /^99-chef-(.*)\.conf$/ -template "/etc/sysctl.d/60-chef.conf" do - source "chef.conf.erb" - owner "root" - group "root" - mode 0644 - notifies :run, "execute[sysctl]" -end + keys.push(Regexp.last_match(1)) + end -node[:sysctl].each_value do |group| - group[:parameters].each do |key, value| - sysctl_file = "/proc/sys/#{key.gsub('.', '/')}" + 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 - file sysctl_file do - content "#{value}\n" - atomic_update false - only_if { File.exist?(sysctl_file) } + keys.each do |key| + sysctl key do + action :remove end end end