Puppet Class: rabbitmq::install::rabbitmqadmin

Defined in:
manifests/install/rabbitmqadmin.pp

Overview

Install rabbitmq admin



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

class rabbitmq::install::rabbitmqadmin {
  if $rabbitmq::rabbitmqadmin_package {
    package { 'rabbitmqadmin':
      ensure => 'present',
      name   => $rabbitmq::rabbitmqadmin_package,
    }
  } else {
    $python_package = $rabbitmq::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
    $archive_options = $rabbitmq::archive_options

    if !($management_ip_address) {
      # Pull from localhost if we don't have an explicit bind address
      $sanitized_ip = '127.0.0.1'
    } elsif $management_ip_address =~ Stdlib::Compat::Ipv6 {
      $sanitized_ip = join(enclose_ipv6(any2array($management_ip_address)), ',')
    } else {
      $sanitized_ip = $management_ip_address
    }

    if !($rabbitmq::use_config_file_for_plugins) {
      $rabbitmqadmin_archive_require = [Class['rabbitmq::service'], Rabbitmq_plugin['rabbitmq_management']]
    } else {
      $rabbitmqadmin_archive_require = [Class['rabbitmq::service'], File['enabled_plugins']]
    }

    archive { 'rabbitmqadmin':
      path             => "${rabbitmq::rabbitmq_home}/rabbitmqadmin",
      source           => "${protocol}://${sanitized_ip}:${management_port}/cli/rabbitmqadmin",
      username         => $default_user,
      password         => $default_pass,
      allow_insecure   => true,
      download_options => $archive_options,
      cleanup          => false,
      require          => $rabbitmqadmin_archive_require,
    }

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