This replaces the deprecated redis cookbook. Compiles the latest version of Redis, currently 7.0.11 Refs #488
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
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
 |