Puppet Class: scaleio::gateway_server

Defined in:
manifests/gateway_server.pp

Overview

Parameters:

  • ensure (Any) (defaults to: 'present')
  • mdm_ips (Any) (defaults to: undef)
  • password (Any) (defaults to: undef)
  • port (Any) (defaults to: 4443)
  • im_port (Any) (defaults to: 8081)


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

class scaleio::gateway_server (
  $ensure       = 'present',  # present|absent - Install or remove Gateway service
  $mdm_ips      = undef,      # string - List of MDM IPs
  $password     = undef,      # string - Password for Gateway
  $port         = 4443,       # int - Port for gateway
  $im_port      = 8081,       # int - Port for IM
  )
{
  $gw_package = $::osfamily ? {
    'RedHat' => 'EMC-ScaleIO-gateway',
    'Debian' => 'emc-scaleio-gateway',
  }
  $provider = "${::osfamily}${::operatingsystemmajrelease}" ? {
    'RedHat6' => 'upstart',
    default  => undef,
  }

  if $ensure == 'absent' {
    package { $gw_package:
      ensure => absent,
    }
  }
  else {
    firewall { '001 for ScaleIO Gateway':
      dport  => [$port, $im_port],
      proto  => tcp,
      action => accept,
    }
    scaleio::common_server { 'install common packages for gateway': ensure_java=>'present' } ->
    package { $gw_package:
        ensure  => installed,
    } ->
    service { 'scaleio-gateway':
      ensure   => 'running',
      enable   => true,
      provider => $provider,
    }

    file_line { 'Set security bypass':
      ensure  => present,
      line    => 'security.bypass_certificate_check=true',
      path    => '/opt/emc/scaleio/gateway/webapps/ROOT/WEB-INF/classes/gatewayUser.properties',
      match   => '^security.bypass_certificate_check=',
      require => Package[$gw_package],
    } ->
    file_line { 'Set gateway port':
      ensure => present,
      line   => "ssl.port=${port}",
      path   => '/opt/emc/scaleio/gateway/conf/catalina.properties',
      match  => '^ssl.port=',
    } ->
    file_line { 'Set IM web-app port':
      ensure => present,
      line   => "http.port=${im_port}",
      path   => '/opt/emc/scaleio/gateway/conf/catalina.properties',
      match  => '^http.port=',
    }
    if $mdm_ips {
      $mdm_ips_str = join(split($mdm_ips,','), ';')
      file_line { 'Set MDM IP addresses':
        ensure  => present,
        line    => "mdm.ip.addresses=${mdm_ips_str}",
        path    => '/opt/emc/scaleio/gateway/webapps/ROOT/WEB-INF/classes/gatewayUser.properties',
        match   => '^mdm.ip.addresses=.*',
        require => Package[$gw_package],
      }
    }
    if $password {
      $jar_path = '/opt/emc/scaleio/gateway/webapps/ROOT'
      $opts = "--reset_password '${password}' --config_file ${jar_path}/WEB-INF/classes/gatewayUser.properties"
      exec { 'Set gateway admin password':
        command     => "java -jar ${jar_path}/resources/install-CLI.jar ${opts}",
        path        => '/etc/alternatives',
        refreshonly => true,
        notify      => Service['scaleio-gateway']
      }
    }

    File_line<| |> ~> Service['scaleio-gateway']
  }

  # TODO:
  # "absent" cleanup
  # try installing java by puppet install module puppetlabs-java - problem is Java in Ubuntu 14.04 is incompatible
}