X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Frabbitmq%2Fmanifests%2Finstall%2Frabbitmqadmin.pp;h=408d2a1a0681a16874991ab8eb9416aabf8b95d0;hb=HEAD;hp=bf545eea4e0a3d9597d08f72172a3b851462d0d1;hpb=eeab194fb2334a6e1f9f084cba107e9cf40aa8f7;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/rabbitmq/manifests/install/rabbitmqadmin.pp b/3rdparty/modules/rabbitmq/manifests/install/rabbitmqadmin.pp index bf545eea4..408d2a1a0 100644 --- a/3rdparty/modules/rabbitmq/manifests/install/rabbitmqadmin.pp +++ b/3rdparty/modules/rabbitmq/manifests/install/rabbitmqadmin.pp @@ -1,35 +1,67 @@ # class rabbitmq::install::rabbitmqadmin { - if($rabbitmq::ssl) { - $management_port = $rabbitmq::ssl_management_port - } - else { - $management_port = $rabbitmq::management_port - } + if $rabbitmq::rabbitmqadmin_package { + package{'rabbitmqadmin': + ensure => 'present', + name => $rabbitmq::rabbitmqadmin_package, + } + } else { - $default_user = $rabbitmq::default_user - $default_pass = $rabbitmq::default_pass - $protocol = $rabbitmq::ssl ? { false => 'http', default => 'https' } + $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'] + } - staging::file { 'rabbitmqadmin': - target => "${rabbitmq::rabbitmq_home}/rabbitmqadmin", - source => "${protocol}://${default_user}:${default_pass}@localhost:${management_port}/cli/rabbitmqadmin", - curl_option => '-k --noproxy localhost --retry 30 --retry-delay 6', - timeout => '180', - wget_option => '--no-proxy', - require => [ - Class['rabbitmq::service'], - Rabbitmq_plugin['rabbitmq_management'] - ], - } + if($rabbitmq::ssl and $rabbitmq::management_ssl) { + $management_port = $rabbitmq::ssl_management_port + $protocol = 'https' + } else { + $management_port = $rabbitmq::management_port + $protocol = 'http' + } - file { '/usr/local/bin/rabbitmqadmin': - owner => 'root', - group => '0', - source => "${rabbitmq::rabbitmq_home}/rabbitmqadmin", - mode => '0755', - require => Staging::File['rabbitmqadmin'], - } + $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 + $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, + download_options => $archive_options, + 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, + } + } }