include redis
class { 'redis':
bind => '10.0.1.1',
}
With authentication
class { 'redis':
bind => '10.0.1.1',
masterauth => 'secret',
}
class { 'redis':
bind => '10.0.1.2',
slaveof => '10.0.1.1 6379',
}
With authentication
class { 'redis':
bind => '10.0.1.2',
slaveof => '10.0.1.1 6379',
masterauth => 'secret',
}
class { 'redis':
bind => '10.0.1.2',
appendonly => true,
cluster_enabled => true,
cluster_config_file => 'nodes.conf',
cluster_node_timeout => 5000,
}
$listening_ports = [6379,6380,6381,6382]
class { 'redis':
default_install => false,
service_enable => false,
service_ensure => 'stopped',
}
$listening_ports.each |$port| {
$port_string = sprintf('%d',$port)
redis::instance { $port_string:
service_enable => true,
service_ensure => 'running',
port => $port,
bind => $facts['networking']['ip'],
dbfilename => "${port}-dump.rdb",
appendfilename => "${port}-appendonly.aof",
appendfsync => 'always',
require => Class['Redis'],
}
}
Disabled by default but if you really want the module to manage the required repositories you can use this snippet:
class { 'redis':
manage_repo => true,
}
On Ubuntu, you can use a PPA by using the ppa_repo
parameter:
class { 'redis':
manage_repo => true,
ppa_repo => 'ppa:rwky/redis',
}
Warning note that PPA usage requires puppetlabs/apt on Ubuntu distros. On EL7 puppet/epel is needed unless the installation is using Software Collections. In that case will install centos-release-scl-rh
from CentOS extras. For RHEL or other RHEL-derivatives this isn't managed.
Optionally install and configuration a redis-sentinel server.
With default settings:
include redis::sentinel
With adjustments:
class { 'redis::sentinel':
master_name => 'cow',
redis_host => '192.168.1.5',
failover_timeout => 30000,
}
When managing the repo, it either needs puppetlabs/apt or puppet/epel.
For administration of sysctl it depends on herculesteam/augeasproviders_sysctl.
This function is used to get data from redis. You must have the 'redis' gem installed on your puppet master.
Functions are documented in REFERENCE.md