Add new Redis cookbook
This commit is contained in:
56
cookbooks/redisio/recipes/configure.rb
Normal file
56
cookbooks/redisio/recipes/configure.rb
Normal file
@@ -0,0 +1,56 @@
|
||||
include_recipe 'redisio::default'
|
||||
include_recipe 'redisio::ulimit'
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user