Defined Type: openiosds::redissentinel

Defined in:
manifests/redissentinel.pp

Overview

Configure and install an OpenIO redis-sentinel service

Parameters:

  • action (Any) (defaults to: 'create')
  • type (Any) (defaults to: 'redissentinel')
  • num (Any) (defaults to: '0')
  • ns (Any) (defaults to: undef)
  • ipaddress (Any) (defaults to: $::ipaddress)
  • port (Any) (defaults to: $::openiosds::params::redissentinel_port)
  • dir (Any) (defaults to: undef)
  • logfile (Any) (defaults to: undef)
  • pidfile (Any) (defaults to: undef)
  • auth_pass (Any) (defaults to: undef)
  • daemonize (Any) (defaults to: 'no')
  • down_after (Any) (defaults to: '1000')
  • failover_timeout (Any) (defaults to: '180000')
  • master_name (Any) (defaults to: 'mymaster')
  • redis_host (Any) (defaults to: $::ipaddress)
  • redis_port (Any) (defaults to: $::openiosds::params::redis_port)
  • parallel_sync (Any) (defaults to: '1')
  • quorum (Any) (defaults to: '2')
  • 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
# File 'manifests/redissentinel.pp', line 2

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

  $ns               = undef,
  $ipaddress        = $::ipaddress,
  $port             = $::openiosds::params::redissentinel_port,
  $dir              = undef,
  $logfile          = undef,
  $pidfile          = undef,
  $auth_pass        = undef,
  $daemonize        = 'no',
  $down_after       = '1000',
  $failover_timeout = '180000',
  $master_name      = 'mymaster',
  $redis_host       = $::ipaddress,
  $redis_port       = $::openiosds::params::redis_port,
  $parallel_sync    = '1',
  $quorum           = '2',

  $no_exec          = false,
) {

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

  # Validation
  validate_string($ns)
  if $auth_pass { validate_string($auth_pass) }
  validate_integer($port)
  validate_integer($redis_port)
  validate_integer($quorum)
  validate_integer($parallel_sync)
  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" }

  # Packages
  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-sentinel.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-sentinel.conf --sentinel --daemonize ${daemonize}",
    group   => "${ns},${type},${type}-${num}",
    uid     => $openiosds::user,
    gid     => $openiosds::group,
    limit   => {
      stack_size => '8192'
    },
    no_exec => $no_exec,
  }


}