Puppet Class: scaleio::mdm::installation

Inherits:
scaleio
Defined in:
manifests/mdm/installation.pp

Overview

install the MDM package either for an MDM or a TB and set the corresponding role

Parameters:

  • is_tiebreaker (Any) (defaults to: true)
  • mdm_tb_ip (Any) (defaults to: $is_tiebreaker ?{ true => $::scaleio::current_tb_ip, false => $::scaleio::current_mdm_ip, default => false)


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
# File 'manifests/mdm/installation.pp', line 3

class scaleio::mdm::installation(
  $is_tiebreaker = true,
  $mdm_tb_ip = $is_tiebreaker ?{
    true  => $::scaleio::current_tb_ip,
    false => $::scaleio::current_mdm_ip,
    default => false,
  }
) inherits scaleio{

  ensure_packages(['python'])

  # only do a new installation of the package
  package_verifiable{ 'EMC-ScaleIO-mdm':
    version        => $scaleio::version,
    manage_package => !$package_emc_scaleio_mdm_version,
    tag            => 'scaleio-install',
    require        => [Package['python'], Package['numactl']],
  }

  $actor_role_is_manager = $is_tiebreaker ? {
    true  => '0',
    false => '1',
  }


  # set the actor role to manager
  file_line { 'scaleio::mdm::installation::actor':
    path    => '/opt/emc/scaleio/mdm/cfg/conf.txt',
    line    => "actor_role_is_manager=${actor_role_is_manager}",
    match   => '^actor_role_is_manager=',
    require => Package_verifiable['EMC-ScaleIO-mdm'],
  } ~>
  exec{ 'scaleio::mdm::installation::restart_mdm':
    # give the mdm time to switch its role
    command     => 'systemctl restart mdm.service; sleep 15',
    refreshonly => true,
  }

  if $scaleio::use_consul {
    include ::consul

    consul_kv{ "scaleio/${::scaleio::system_name}/cluster_setup/${mdm_tb_ip}":
      value   => 'ready',
      require => Exec['scaleio::mdm::installation::restart_mdm'],
    }
  }
}