+++ /dev/null
-# == Define Resource Type: apache::balancer
-#
-# This type will create an apache balancer cluster file inside the conf.d
-# directory. Each balancer cluster needs one or more balancer members (that can
-# be declared with the apache::balancermember defined resource type). Using
-# storeconfigs, you can export the apache::balancermember resources on all
-# balancer members, and then collect them on a single apache load balancer
-# server.
-#
-# === Requirement/Dependencies:
-#
-# Currently requires the puppetlabs/concat module on the Puppet Forge and uses
-# storeconfigs on the Puppet Master to export/collect resources from all
-# balancer members.
-#
-# === Parameters
-#
-# [*name*]
-# The namevar of the defined resource type is the balancer clusters name.
-# This name is also used in the name of the conf.d file
-#
-# [*proxy_set*]
-# Hash, default empty. If given, each key-value pair will be used as a ProxySet
-# line in the configuration.
-#
-# [*collect_exported*]
-# Boolean, default 'true'. True means 'collect exported @@balancermember
-# resources' (for the case when every balancermember node exports itself),
-# false means 'rely on the existing declared balancermember resources' (for the
-# case when you know the full set of balancermembers in advance and use
-# apache::balancermember with array arguments, which allows you to deploy
-# everything in 1 run)
-#
-#
-# === Examples
-#
-# Exporting the resource for a balancer member:
-#
-# apache::balancer { 'puppet00': }
-#
-define apache::balancer (
- $proxy_set = {},
- $collect_exported = true,
-) {
- include ::apache::mod::proxy_balancer
-
- $target = "${::apache::params::confd_dir}/balancer_${name}.conf"
-
- concat { $target:
- owner => '0',
- group => '0',
- mode => '0644',
- notify => Class['Apache::Service'],
- }
-
- concat::fragment { "00-${name}-header":
- ensure => present,
- target => $target,
- order => '01',
- content => "<Proxy balancer://${name}>\n",
- }
-
- if $collect_exported {
- Apache::Balancermember <<| balancer_cluster == $name |>>
- }
- # else: the resources have been created and they introduced their
- # concat fragments. We don't have to do anything about them.
-
- concat::fragment { "01-${name}-proxyset":
- ensure => present,
- target => $target,
- order => '19',
- content => inline_template("<% @proxy_set.keys.sort.each do |key| %> Proxyset <%= key %>=<%= @proxy_set[key] %>\n<% end %>"),
- }
-
- concat::fragment { "01-${name}-footer":
- ensure => present,
- target => $target,
- order => '20',
- content => "</Proxy>\n",
- }
-}