77 lines
2.0 KiB
Puppet
77 lines
2.0 KiB
Puppet
notice('MODULAR: detach-rabbitmq/rabbitmq_hiera_override.pp')
|
|
|
|
$detach_rabbitmq_plugin = hiera('detach-rabbitmq', undef)
|
|
$hiera_dir = '/etc/hiera/override'
|
|
$plugin_name = 'detach-rabbitmq'
|
|
$plugin_yaml = "${plugin_name}.yaml"
|
|
|
|
if ($detach_rabbitmq_plugin) {
|
|
$network_metadata = hiera_hash('network_metadata')
|
|
$rabbitmq_roles = [ 'standalone-rabbitmq' ]
|
|
$rabbit_nodes = get_nodes_hash_by_roles($network_metadata, $rabbitmq_roles)
|
|
#lint:ignore:80chars
|
|
$rabbit_address_map = get_node_to_ipaddr_map_by_network_role($rabbit_nodes, 'mgmt/messaging')
|
|
#lint:endignore
|
|
$amqp_port = hiera('amqp_port', '5673')
|
|
$rabbit_nodes_ips = values($rabbit_address_map)
|
|
$rabbit_nodes_names = keys($rabbit_address_map)
|
|
|
|
case hiera('role', 'none') {
|
|
/rabbitmq/: {
|
|
$rabbit_enabled = true
|
|
$corosync_roles = $rabbitmq_roles
|
|
$deploy_vrouter = false
|
|
# Set to true HA
|
|
$corosync_nodes = $rabbit_nodes
|
|
}
|
|
/controller/: {
|
|
$rabbit_enabled = false
|
|
}
|
|
default: {
|
|
$rabbit_enabled = true
|
|
}
|
|
}
|
|
|
|
$amqp_nodes = $rabbit_nodes_ips
|
|
$amqp_hosts = inline_template("<%= @amqp_nodes.map {|x| x + ':' + @amqp_port}.join ',' %>")
|
|
|
|
$calculated_content = inline_template('
|
|
amqp_hosts: <%= @amqp_hosts %>
|
|
rabbit_hash:
|
|
enabled: <%= @rabbit_enabled %>
|
|
<% if @corosync_nodes -%>
|
|
<% require "yaml" -%>
|
|
corosync_nodes:
|
|
<%= YAML.dump(@corosync_nodes).sub(/--- *$/,"") %>
|
|
<% end -%>
|
|
<% if @corosync_roles -%>
|
|
corosync_roles:
|
|
<%
|
|
@corosync_roles.each do |crole|
|
|
%> - <%= crole %>
|
|
<% end -%>
|
|
<% end -%>
|
|
deploy_vrouter: <%= @deploy_vrouter %>
|
|
')
|
|
|
|
###################
|
|
file {'/etc/hiera/override':
|
|
ensure => directory,
|
|
} ->
|
|
file { "${hiera_dir}/${plugin_yaml}":
|
|
ensure => file,
|
|
content => "${calculated_content}\n",
|
|
}
|
|
|
|
package {'ruby-deep-merge':
|
|
ensure => 'installed',
|
|
}
|
|
|
|
file_line {"${plugin_name}_hiera_override":
|
|
path => '/etc/hiera.yaml',
|
|
line => " - override/${plugin_name}",
|
|
after => ' - override/module/%{calling_module}',
|
|
}
|
|
|
|
}
|