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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# 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
    $archive_options = $rabbitmq::archive_options

    # This should be consistent with rabbitmq::config
    if $rabbitmq::management_ip_address {
      $management_ip_address = $rabbitmq::management_ip_address
    } else {
      $management_ip_address = $rabbitmq::node_ip_address
    }

    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::IP::Address::V6::Nosubnet {
      $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'],
        Exec['remove_old_rabbitmqadmin_on_upgrade']
      ]
    } else {
      $rabbitmqadmin_archive_require = [
        Class['rabbitmq::service'],
        File['enabled_plugins'],
        Exec['remove_old_rabbitmqadmin_on_upgrade']
      ]
    }

    Exec { 'remove_old_rabbitmqadmin_on_upgrade':
      path        => ['/bin','/usr/bin','/sbin','/usr/sbin'],
      command     => "rm ${rabbitmq::rabbitmq_home}/rabbitmqadmin",
      onlyif      => ["test -f ${rabbitmq::rabbitmq_home}/rabbitmqadmin"],
      refreshonly => true,
    }

    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,
    }
  }
}