chef/cookbooks/redisio/recipes/configure.rb

57 lines
1.7 KiB
Ruby

include_recipe 'redisio::default'
include_recipe 'ulimit::default'
redis = node['redisio']
redis_instances = redis['servers']
if redis_instances.nil?
redis_instances = [
{
'port' => '6379',
},
]
end
redisio_configure 'redis-servers' do
version redis['version'] if redis['version']
default_settings redis['default_settings']
servers redis_instances
base_piddir redis['base_piddir']
end
# Create a service resource for each redis instance, named for the port it runs on.
redis_instances.each do |current_server|
server_name = current_server['name'] || current_server['port']
case node['redisio']['job_control']
when 'initd'
service "redis#{server_name}" do
# don't supply start/stop/restart commands, Chef::Provider::Service::*
# do a fine job on it's own, and support systemd correctly
supports start: true, stop: true, restart: false, status: true
end
when 'upstart'
service "redis#{server_name}" do
provider Chef::Provider::Service::Upstart
start_command "start redis#{server_name}"
stop_command "stop redis#{server_name}"
restart_command "restart redis#{server_name}"
supports start: true, stop: true, restart: true, status: false
end
when 'systemd'
service "redis@#{server_name}" do
provider Chef::Provider::Service::Systemd
supports start: true, stop: true, restart: true, status: true
end
when 'rcinit'
service "redis#{server_name}" do
provider Chef::Provider::Service::Freebsd
supports start: true, stop: true, restart: true, status: true
end
else
Chef::Log.error('Unknown job control type, no service resource created!')
end
end
node.override['redisio']['servers'] = redis_instances