chef/cookbooks/redisio/attributes/default.rb

165 lines
6.3 KiB
Ruby

package_bin_path = '/usr/bin'
config_dir = '/etc/redis'
default_package_install = false
case node['platform']
when 'ubuntu', 'debian'
shell = '/bin/false'
homedir = '/var/lib/redis'
package_name = 'redis-server'
when 'centos', 'redhat', 'scientific', 'amazon', 'suse', 'fedora'
shell = '/bin/sh'
homedir = '/var/lib/redis'
package_name = 'redis'
when 'freebsd'
shell = '/bin/sh'
homedir = '/var/lib/redis'
package_name = 'redis'
package_bin_path = '/usr/local/bin'
config_dir = '/usr/local/etc/redis'
default_package_install = true
else
shell = '/bin/sh'
homedir = '/redis'
package_name = 'redis'
end
# Overwite template used for the Redis Server config (not sentinel)
default['redisio']['redis_config']['template_cookbook'] = 'redisio'
default['redisio']['redis_config']['template_source'] = 'redis.conf.erb'
# Install related attributes
default['redisio']['safe_install'] = true
default['redisio']['package_install'] = default_package_install
default['redisio']['package_name'] = package_name
default['redisio']['bypass_setup'] = false
# Tarball and download related defaults
default['redisio']['mirror'] = 'http://download.redis.io/releases/'
default['redisio']['base_name'] = 'redis-'
default['redisio']['artifact_type'] = 'tar.gz'
default['redisio']['base_piddir'] = '/var/run/redis'
# Version
default['redisio']['version'] = if node['redisio']['package_install']
# latest version (only for package install)
nil
else
# force version for tarball
'3.2.11'
end
# Custom installation directory
default['redisio']['install_dir'] = nil
# Job control related options (initd, upstart, or systemd)
default['redisio']['job_control'] = if systemd?
'systemd'
elsif platform_family?('freebsd')
'rcinit'
else
'initd'
end
# Init.d script related options
default['redisio']['init.d']['required_start'] = []
default['redisio']['init.d']['required_stop'] = []
# Default settings for all redis instances, these can be overridden on a per server basis in the 'servers' hash
default['redisio']['default_settings'] = {
'user' => 'redis',
'group' => 'redis',
'permissions' => '0644',
'homedir' => homedir,
'shell' => shell,
'systemuser' => true,
'uid' => nil,
'ulimit' => 0,
'configdir' => config_dir,
'name' => nil,
'tcpbacklog' => '511',
'address' => nil,
'databases' => '16',
'backuptype' => 'rdb',
'datadir' => '/var/lib/redis',
'unixsocket' => nil,
'unixsocketperm' => nil,
'timeout' => '0',
'keepalive' => '0',
'loglevel' => 'notice',
'logfile' => nil,
'syslogenabled' => 'yes',
'syslogfacility' => 'local0',
'shutdown_save' => false,
'save' => nil, # Defaults to ['900 1','300 10','60 10000'] inside of template. Needed due to lack of hash subtraction
'stopwritesonbgsaveerror' => 'yes',
'rdbcompression' => 'yes',
'rdbchecksum' => 'yes',
'dbfilename' => nil,
'slaveof' => nil,
'protected_mode' => nil, # unspecified by default but could be set explicitly to 'yes' or 'no'
'masterauth' => nil,
'slaveservestaledata' => 'yes',
'slavereadonly' => 'yes',
'repldisklesssync' => 'no',
'repldisklesssyncdelay' => '5',
'replpingslaveperiod' => '10',
'repltimeout' => '60',
'repldisabletcpnodelay' => 'no',
'replbacklogsize' => '1mb',
'replbacklogttl' => 3600,
'slavepriority' => '100',
'requirepass' => nil,
'rename_commands' => nil,
'maxclients' => 10000,
'maxmemory' => nil,
'maxmemorypolicy' => nil,
'maxmemorysamples' => nil,
'appendfilename' => nil,
'appendfsync' => 'everysec',
'noappendfsynconrewrite' => 'no',
'aofrewritepercentage' => '100',
'aofrewriteminsize' => '64mb',
'aofloadtruncated' => 'yes',
'luatimelimit' => '5000',
'slowloglogslowerthan' => '10000',
'slowlogmaxlen' => '1024',
'notifykeyspaceevents' => '',
'hashmaxziplistentries' => '512',
'hashmaxziplistvalue' => '64',
'listmaxziplistentries' => '512',
'listmaxziplistvalue' => '64',
'setmaxintsetentries' => '512',
'zsetmaxziplistentries' => '128',
'zsetmaxziplistvalue' => '64',
'hllsparsemaxbytes' => '3000',
'activerehasing' => 'yes',
'clientoutputbufferlimit' => [
%w(normal 0 0 0),
%w(slave 256mb 64mb 60),
%w(pubsub 32mb 8mb 60),
],
'hz' => '10',
'aofrewriteincrementalfsync' => 'yes',
'clusterenabled' => 'no',
'clusterconfigfile' => nil, # Defaults to redis instance name inside of template if cluster is enabled.
'clusternodetimeout' => 5000,
'includes' => nil,
'data_bag_name' => nil,
'data_bag_item' => nil,
'data_bag_key' => nil,
'minslavestowrite' => nil,
'minslavesmaxlag' => nil,
'breadcrumb' => true,
}
# The default for this is set inside of the "install" recipe. This is due to the way deep merge handles arrays
default['redisio']['servers'] = nil
# Define binary path
default['redisio']['bin_path'] = if node['redisio']['package_install']
package_bin_path
else
'/usr/local/bin'
end