Set sysctl values from Chef!
node['sysctl']
- A namespace for sysctl settings.
There are two ways of setting sysctl values:
-
Set chef attributes in the sysctl namespace. e.g.:
node.set['sysctl']['set swappiness'] = { 'vm.swappiness' => '20' }
-
Set values in a
cookbook_file
Resource. -
With Ressource/Provider.
This Cookbook includes two LWRPs:
- sysctl
- sysctl_multi
- :save - Save and set a sysctl value (default).
- :set - Set a sysctl value.
- :remove - Remove a (previous set) sysctl.
- variable - Variable to manage. e.g.
net.ipv4.ip_forward
,vm.swappiness
. - value - Value to affect to variable. e.g.
1
,0
. - path - Path to a specific file.
###ruby
# Set 'vm.swappiness' to '60'. Will create /etc/sysctl.d/40-vm.wappiness.conf
sysctl 'vm.swappiness' do
value '40'
end
####the same. will create /etc/sysctl.d/40-vm_swappiness_to_60.conf
sysctl 'vm swappiness to 60' do
variable 'vm.swappiness'
value '60'
end
####Remove /etc/sysctl.d/40-ip_config.conf sysctl 'ip config' do action :remove end
sysctl 'vm.swappiness' do
action :set
value '40'
end
- :save - Save and set a sysctl value (default).
- :set - set a sysctl value.
- :remove - remove a (previous set) sysctl.
- instructions - Hash with instruction. e.g.
{variable => value, variable2 => value2}
. Override use of 'variable' and 'value'. - path - Path to a specific file.
####ruby
sysctl_multi 'ip config' do
instructions {
'net.ipv4.ip_forward' => '1',
'net.ipv6.conf.all.forwarding' => '1',
'net.ipv4.tcp_syncookies' => '1'}
end