Defined Type: haproxy_cd::server::proxy

Defined in:
manifests/server/proxy.pp

Summary

Define manages the proxies for haproxy_cd.

Overview

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

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')

    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 port to bind.

  • 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

  • be_balance (String) (defaults to: '')

    what kind of balance should be used

  • be_mode (String) (defaults to: '')

    which backend mode should be used

  • default_backend (String) (defaults to: '')

    value for the default backend

  • be_option (String) (defaults to: '')

    value for a backend option

  • fe_tcp_request (String) (defaults to: '')

    value for a frontend tcp request

  • fe_http_request (String) (defaults to: '')

    value for a frontend http request

  • fe_option (String) (defaults to: '')

    value for a frontend option

  • acl_rule_front (String) (defaults to: '')

    value for a frontend acl rule

  • acl_rule_back (String) (defaults to: '')

    value for a backend acl rule

  • backend_configs (Array) (defaults to: [])

    array of values for the backend

  • be_stick_table (String) (defaults to: '')

    value for the backend stickiness

  • be_stick_on (String) (defaults to: '')

    value for th backend stickiness

  • be_http_check (String) (defaults to: '')

    value for backend http check

  • be_http_request (String) (defaults to: '')

    value for a backend http request

  • be_acl_rule (String) (defaults to: '')

    value for a backend acl rule



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
89
90
91
92
93
94
# File 'manifests/server/proxy.pp', line 34

define haproxy_cd::server::proxy (

  String $haproxy_fqdn     = undef,
  String $frontend_name    = undef,
  String $frontend_mode    = undef,
  String $fe_use_backend   = '',
  String $fe_bind_mode     = undef,
  String $fe_option        = '',
  String $frontend_order   = '010',
  String $acl_rule_front   = '',
  String $acl_rule_back    = '',
  String $backend_name     = '',
  String $backend_order    = '030',
  String $fe_maxconn       = '',
  String $be_server_name   = '',
  String $be_balance       = '',
  String $be_mode          = '',
  String $default_backend  = '',
  String $be_option        = '',
  String $fe_tcp_request   = '',
  String $fe_http_request  = '',
  Array $backend_configs  = [],
  String $be_stick_table   = '',
  String $be_stick_on      = '',
  String $be_http_check    = '',
  String $be_http_request  = '',
  String $be_acl_rule      = '',

) {
  $hy_main_config   = '/etc/haproxy/haproxy.cfg'
  $hy_frontendrule  = 'haproxy_cd/haproxy_frontend_rule.erb'
  $hy_backendrule   = 'haproxy_cd/haproxy_backend_rule.erb'
  $hy_acl_rule      = 'haproxy_cd/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, ';')
  $fe_use_backend_array   = split($fe_use_backend,';')
  $backend_name_array     = split($backend_name, ';')
  $be_server_name_array   = split($be_server_name, ';')
  $be_option_array        = split($be_option, ';')
  $fe_tcp_request_array   = split($fe_tcp_request, ';')
  $fe_option_array        = split($fe_option, ';')
  $fe_http_request_array  = split($fe_http_request, ';')

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

  # Ensure backends are only created once
  ensure_resource('concat::fragment', "backends_${name}", {
      'target'  => $hy_main_config,
      'content' => template($hy_backendrule),
      'order'   => $backend_order,
  })

  # open specific firewall ports
}