## 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 . # @summary Define manages the proxies for cd_haproxy. # @param [string] haproxy_fqdn the fqdn of the haproxy server in question. # @param [string] frontend_name the name for the frontend section rule. # @param [string] frontend_order the order where the concat should appear # in the file. # @param [string] frontend_mode mode for the loadbalancer instance: http or tcp # @param [string] fe_use_backend which backend to use. if left empty, the # default backend will be used. # @param [string] fe_bind_mode which bind mode to use, i.e. to which interface # and poort to bind. # @param [string] acl_rule an ACL rule to be inserted if required. Empty values # will not be populated. # @param [string] acl_order the order where the acl rule should be inserted, # so it will be within the correct lb instance configuration. # @param [string] backend_name the backend name to be used for the rule. # @param [string] backend_order the order for the backend name, so it will be # within the correct lb instance configuration. # @param [string] fe_maxconn the maximum connections for the lb instance. # @param [string] be_server_name set the name for the backend server ############################################################################### 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 = undef, $backend_order = '030', $fe_maxconn = '', $be_server_name = undef, $be_balance = '', ) { $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' # 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, } }