Puppet Class: scaleio::mdm::cluster_setup

Defined in:
manifests/mdm/cluster_setup.pp

Overview

setup a MDM cluster



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

class scaleio::mdm::cluster_setup {

  $primary_mdm_ips = join(any2array($::scaleio::mdms[$::scaleio::bootstrap_mdm_name]['ips']), ',')
  $primary_mdm_mgmt_ips = join(any2array($::scaleio::mdms[$::scaleio::bootstrap_mdm_name]['mgmt_ips']), ',')

  exec{ 'scaleio::mdm::cluster_setup::create_cluster':
    command => "scli --create_mdm_cluster --master_mdm_ip ${primary_mdm_ips} --master_mdm_name ${::scaleio::bootstrap_mdm_name} --use_nonsecure_communication --accept_license; sleep 5",
    onlyif  => 'scli --query_cluster --approve_certificate 2>&1 |grep -qE "Error: MDM failed command.  Status: The MDM cluster state is incorrect"',
    require => Exec['scaleio::mdm::installation::restart_mdm'],
  }->
  exec{ 'scaleio::mdm::cluster_setup::login_default':
    command => "scli --login --username admin --password ${::scaleio::old_password}",
    unless  => "scli --login --username admin --password ${::scaleio::password} && scli --logout",
  } ~>
  exec{ 'scaleio::mdm::cluster_setup::primary_change_pwd':
    command     => "scli --set_password --old_password ${::scaleio::old_password} --new_password ${scaleio::password}",
    refreshonly => true,
  }

  # wait until the MDM/TBs have been setup
  if $scaleio::use_consul{
    $mdm_tb_consul_keys = prefix(concat(
      scaleio_get_first_mdm_ips($::scaleio::mdms, 'ips'),
      scaleio_get_first_mdm_ips($::scaleio::tiebreakers, 'ips')
    ),
      "scaleio/${scaleio::system_name}/cluster_setup/")

    consul_kv_blocker{ $mdm_tb_consul_keys:
      tries     => 120,
      try_sleep => 30,
      require   => Consul_kv["scaleio/${::scaleio::system_name}/cluster_setup/${::scaleio::current_mdm_ip}"],
    } -> Scaleio_mdm<| |>
  }

  # create the MDMs as standby MDMs
  create_resources('scaleio_mdm', $scaleio::mdms, {
    ensure        => present,
    is_tiebreaker => false,
    require       => Exec['scaleio::mdm::cluster_setup::primary_change_pwd']
  })

  create_resources('scaleio_mdm', $scaleio::tiebreakers, {
    ensure        => present,
    is_tiebreaker => true,
    require       => Exec['scaleio::mdm::cluster_setup::primary_change_pwd']
  })

  Scaleio_mdm<||> -> Scaleio_mdm_cluster<||>

  scaleio_mdm_cluster{ 'mdm_cluster':
    mdm_names => keys($::scaleio::mdms),
    tb_names  => keys($::scaleio::tiebreakers),
  }
}