Defined Type: cd_haproxy::server::proxy

Defined in:
manifests/server/proxy.pp

Summary

Define manages the proxies for cd_haproxy.

Overview

cd_haproxy::server::proxy.pp Module name: cd_haproxy Author: Arne Teuke (arne_teuke@ConfDroid.com)

License:

This file is part of cd_haproxy.

cd_haproxy is used for providing automatic configuration of HAProxy Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see www.gnu.org/licenses/.

Parameters:

  • haproxy_fqdn (string) (defaults to: undef)

    the fqdn of the haproxy server in question.

  • frontend_name (string) (defaults to: undef)

    the name for the frontend section rule.

  • frontend_order (string) (defaults to: '010')

    the order where the concat should appear in the file.

  • frontend_mode (string) (defaults to: undef)

    mode for the loadbalancer instance: http or tcp

  • fe_use_backend (string) (defaults to: [])

    which backend to use. if left empty, the default backend will be used.

  • fe_bind_mode (string) (defaults to: undef)

    which bind mode to use, i.e. to which interface and poort to bind.

  • acl_rule (string)

    an ACL rule to be inserted if required. Empty values will not be populated.

  • acl_order (string)

    the order where the acl rule should be inserted, so it will be within the correct lb instance configuration.

  • backend_name (string) (defaults to: [])

    the backend name to be used for the rule.

  • backend_order (string) (defaults to: '030')

    the order for the backend name, so it will be within the correct lb instance configuration.

  • fe_maxconn (string) (defaults to: '')

    the maximum connections for the lb instance.

  • be_server_name (string) (defaults to: [])

    set the name for the backend server

  • acl_rule_front (Any) (defaults to: [])
  • acl_rule_back (Any) (defaults to: [])
  • be_balance (Any) (defaults to: '')
  • be_mode (Any) (defaults to: '')


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
# File 'manifests/server/proxy.pp', line 41

define cd_haproxy::server::proxy (

  $haproxy_fqdn     = undef,
  $frontend_name    = undef,
  $frontend_mode    = undef,
  $fe_use_backend   = [],
  $fe_bind_mode     = undef,
  $frontend_order   = '010',
  $acl_rule_front   = [],
  $acl_rule_back    = [],
  $backend_name     = [],
  $backend_order    = '030',
  $fe_maxconn       = '',
  $be_server_name   = [],
  $be_balance       = '',
  $be_mode          = '',

) {

  $hy_main_config   = '/etc/haproxy/haproxy.cfg'
  $hy_frontendrule  = 'cd_haproxy/haproxy_frontend_rule.erb'
  $hy_backendrule   = 'cd_haproxy/haproxy_backend_rule.erb'
  $hy_acl_rule      = 'cd_haproxy/haproxy_acl_rule.erb'


 # Ensure acl_rule_front and acl_rule_back are arrays
  $acl_rule_front_array = split($acl_rule_front, '|')
  $acl_rule_back_array  = split($acl_rule_back, '|')
  $backend_name_array   = split($backend_name, '|')
  $be_server_name_array = split($be_server_name, '|')

  # create frontend section
  concat::fragment { "frontend_${name}":
    target  =>  $hy_main_config,
    content =>  template($hy_frontendrule),
    order   =>  $frontend_order,
  }

  # create backend section
  concat::fragment { "backend_${name}":
    target  =>  $hy_main_config,
    content =>  template($hy_backendrule),
    order   =>  $backend_order,
  }
}