Puppet Class: rabbitmq::install::rabbitmqadmin

Defined in:
manifests/install/rabbitmqadmin.pp

Overview



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

class rabbitmq::install::rabbitmqadmin {

  if $rabbitmq::rabbitmqadmin_package {
    package{'rabbitmqadmin':
      ensure => 'present',
      name   => $rabbitmq::rabbitmqadmin_package,
    }
  } else {
    require archive

    $python_package = $rabbitmq::params::python_package
    # Some systems (e.g., Ubuntu 16.04) don't ship Python 2 by default
    if $rabbitmq::manage_python {
      ensure_packages([$python_package])
      $rabbitmqadmin_require = [Archive['rabbitmqadmin'], Package[$python_package]]
    } else {
      $rabbitmqadmin_require = Archive['rabbitmqadmin']
    }

    if($rabbitmq::ssl and $rabbitmq::management_ssl) {
      $management_port = $rabbitmq::ssl_management_port
      $protocol        = 'https'
    } else {
      $management_port = $rabbitmq::management_port
      $protocol        = 'http'
    }

    $default_user = $rabbitmq::default_user
    $default_pass = $rabbitmq::default_pass
    $management_ip_address = $rabbitmq::management_ip_address

    if !($management_ip_address) {
      # Pull from localhost if we don't have an explicit bind address
      $curl_prefix = ''
      $sanitized_ip = '127.0.0.1'
    } elsif is_ipv6_address($management_ip_address) {
      $curl_prefix  = "--noproxy ${management_ip_address} -g -6"
      $sanitized_ip = join(enclose_ipv6(any2array($management_ip_address)), ',')
    } else {
      $curl_prefix  = "--noproxy ${management_ip_address}"
      $sanitized_ip = $management_ip_address
    }

    archive { 'rabbitmqadmin':
      path           => "${rabbitmq::rabbitmq_home}/rabbitmqadmin",
      source         => "${protocol}://${sanitized_ip}:${management_port}/cli/rabbitmqadmin",
      username       => $default_user,
      password       => $default_pass,
      allow_insecure => true,
      cleanup        => false,
      require        => [
        Class['rabbitmq::service'],
        Rabbitmq_plugin['rabbitmq_management']
      ],
    }

    file { '/usr/local/bin/rabbitmqadmin':
      owner   => 'root',
      group   => '0',
      source  => "${rabbitmq::rabbitmq_home}/rabbitmqadmin",
      mode    => '0755',
      require => $rabbitmqadmin_require,
    }
  }
}