Defined Type: openiosds::redis

Defined in:
manifests/redis.pp

Overview

Configure and install an OpenIO redis service

Parameters:

  • action (Any) (defaults to: 'create')
  • type (Any) (defaults to: 'redis')
  • num (Any) (defaults to: '0')
  • ns (Any) (defaults to: undef)
  • ipaddress (Any) (defaults to: $::ipaddress)
  • port (Any) (defaults to: $::openiosds::params::redis_port)
  • dir (Any) (defaults to: undef)
  • logfile (Any) (defaults to: undef)
  • pidfile (Any) (defaults to: undef)
  • slaveof (Any) (defaults to: undef)
  • daemonize (Any) (defaults to: 'no')
  • tcp_backlog (Any) (defaults to: '511')
  • timeout (Any) (defaults to: '0')
  • tcp_keepalive (Any) (defaults to: '0')
  • loglevel (Any) (defaults to: 'notice')
  • databases (Any) (defaults to: '16')
  • stop_writes_on_bgsave_error (Any) (defaults to: 'yes')
  • rdbcompression (Any) (defaults to: 'yes')
  • rdbchecksum (Any) (defaults to: 'yes')
  • dbfilename (Any) (defaults to: 'dump.rdb')
  • slave_serve_stale_data (Any) (defaults to: 'yes')
  • slave_read_only (Any) (defaults to: 'yes')
  • slave_priority (Any) (defaults to: '100')
  • latency_monitor_threshold (Any) (defaults to: '0')
  • save (Any) (defaults to: ['900 1','300 10','60 10000'])
  • maxclients (Any) (defaults to: '10000')
  • maxmemory (Any) (defaults to: '0')
  • location (Any) (defaults to: $hostname)
  • no_exec (Any) (defaults to: false)


2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'manifests/redis.pp', line 2

define openiosds::redis (
  $action                      = 'create',
  $type                        = 'redis',
  $num                         = '0',

  $ns                          = undef,
  $ipaddress                   = $::ipaddress,
  $port                        = $::openiosds::params::redis_port,
  $dir                         = undef,
  $logfile                     = undef,
  $pidfile                     = undef,
  $slaveof                     = undef,
  $daemonize                   = 'no',
  $tcp_backlog                 = '511',
  $timeout                     = '0',
  $tcp_keepalive               = '0',
  $loglevel                    = 'notice',
  $databases                   = '16',
  $stop_writes_on_bgsave_error = 'yes',
  $rdbcompression              = 'yes',
  $rdbchecksum                 = 'yes',
  $dbfilename                  = 'dump.rdb',
  $slave_serve_stale_data      = 'yes',
  $slave_read_only             = 'yes',
  $slave_priority              = '100',
  $latency_monitor_threshold   = '0',
  $save                        = ['900 1','300 10','60 10000'],
  $maxclients                  = '10000',
  $maxmemory                   = '0',

  $location                    = $hostname,
  $no_exec                     = false,
) {

  if ! defined(Class['openiosds']) {
    include openiosds
  }

  # Validation
  validate_string($ns)
  if ! has_interface_with('ipaddress',$ipaddress) { fail("${ipaddress} is invalid.") }
  validate_integer($port)
  if $dir { $_dir = $dir }
  else { $_dir = "${openiosds::sharedstatedir}/${ns}/${type}-${num}" }
  if $logfile { $_logfile = $logfile }
  else { $_logfile = "${openiosds::logdir}/${ns}/${type}-${num}/${type}-${num}.log" }
  if $pidfile { $_pidfile = $pidfile }
  else { $_pidfile = "${openiosds::sharedstatedir}/${ns}/${type}-${num}/${type}-${num}.pid" }
  if $slaveof { validate_string($slaveof) }
  validate_string($location)

  # Namespace
  if $action == 'create' {
    if ! defined(Openiosds::Namespace[$ns]) {
      fail('You must include the namespace class before using OpenIO defined types.')
    }
  }

  # Package
  ensure_packages([$::openiosds::params::redis_package_name],$::openiosds::params::package_install_options)
  # Service
  openiosds::service {"${ns}-${type}-${num}":
    action => $action,
    type   => $type,
    num    => $num,
    ns     => $ns,
    volume => $_dir,
  } ->
  # Configuration files
  file { "${openiosds::sysconfdir}/${ns}/${type}-${num}/redis.conf":
    ensure  => $openiosds::file_ensure,
    content => template("openiosds/${type}.conf.erb"),
    mode    => $openiosds::file_mode,
    owner   => $openiosds::user,
    group   => $openiosds::group,
    require => Package[$::openiosds::params::redis_package_name],
  } ->
  file { "${openiosds::logdir}/${ns}/${type}-${num}/${type}-${num}.log":
    ensure => $openiosds::file_ensure,
    owner  => $openiosds::user,
    group  => $openiosds::group,
  } ->
  # Init
  gridinit::program { "${ns}-${type}-${num}":
    action  => $action,
    command => "${openiosds::bindir}/redis-server ${openiosds::sysconfdir}/${ns}/${type}-${num}/redis.conf --daemonize ${daemonize}",
    group   => "${ns},${type},${type}-${num}",
    uid     => $openiosds::user,
    gid     => $openiosds::group,
    limit   => {
      stack_size => '8192'
    },
    no_exec => $no_exec,
  }

}