2015-02-24 16:19:02 -05:00
|
|
|
# HAProxy configuration
|
|
|
|
#
|
|
|
|
# **** DO NOT EDIT THIS FILE ****
|
|
|
|
#
|
|
|
|
# This file is managed by Salt.
|
|
|
|
# Any changes will be overwritten.
|
|
|
|
|
2015-07-23 04:46:44 -04:00
|
|
|
|
2015-07-21 11:42:56 -04:00
|
|
|
#------------------
|
2015-02-24 16:19:02 -05:00
|
|
|
# Global settings
|
2015-07-21 11:42:56 -04:00
|
|
|
#------------------
|
2015-02-24 16:19:02 -05:00
|
|
|
global
|
|
|
|
log /dev/log local0
|
|
|
|
log /dev/log local1 notice
|
|
|
|
user {{ salt['pillar.get']('haproxy:global:user', 'haproxy') }}
|
|
|
|
group {{ salt['pillar.get']('haproxy:global:group', 'haproxy') }}
|
|
|
|
{%- if salt['pillar.get']('haproxy:global:chroot:enable', 'no') == True %}
|
|
|
|
chroot {{ salt['pillar.get']('haproxy:global:chroot:path', '/tmp') }}
|
2015-07-23 04:46:44 -04:00
|
|
|
{%- endif %}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- if salt['pillar.get']('haproxy:global:daemon', 'no') == True %}
|
2015-02-24 16:19:02 -05:00
|
|
|
daemon
|
2015-07-23 04:46:44 -04:00
|
|
|
{%- endif %}
|
|
|
|
{% if salt['pillar.get']('haproxy:global:stats:enable', 'no') == True %}
|
2015-05-23 13:43:21 -04:00
|
|
|
# Stats support is currently limited to socket mode
|
2015-02-24 16:19:02 -05:00
|
|
|
stats socket {{ salt['pillar.get']('haproxy:global:stats:socketpath', '/tmp/ha_stats.sock') }}
|
2015-07-23 04:46:44 -04:00
|
|
|
{%- endif %}
|
|
|
|
|
2015-02-24 16:19:02 -05:00
|
|
|
|
2015-07-21 11:42:56 -04:00
|
|
|
#------------------
|
2015-02-24 16:19:02 -05:00
|
|
|
# common defaults that all the 'listen' and 'backend' sections will
|
2015-07-21 11:42:56 -04:00
|
|
|
# use- if not designated in their block
|
|
|
|
#------------------
|
2015-02-24 16:19:02 -05:00
|
|
|
defaults
|
|
|
|
log {{ salt['pillar.get']('haproxy:defaults:log') }}
|
|
|
|
mode {{ salt['pillar.get']('haproxy:defaults:mode') }}
|
|
|
|
retries {{ salt['pillar.get']('haproxy:defaults:retries') }}
|
2015-07-13 19:17:06 -04:00
|
|
|
balance {{ salt['pillar.get']('haproxy:defaults:balance', 'roundrobin') }}
|
2015-02-24 16:19:02 -05:00
|
|
|
{%- if 'options' in salt['pillar.get']('haproxy:defaults', {}) %}
|
2015-05-23 13:43:21 -04:00
|
|
|
{%- for option in salt['pillar.get']('haproxy:defaults:options') %}
|
|
|
|
option {{ option }}
|
|
|
|
{%- endfor %}
|
2015-02-24 16:19:02 -05:00
|
|
|
{% endif %}
|
|
|
|
{%- if 'timeouts' in salt['pillar.get']('haproxy:defaults', {}) %}
|
2015-05-23 13:43:21 -04:00
|
|
|
{%- for timeout in salt['pillar.get']('haproxy:defaults:timeouts') %}
|
|
|
|
timeout {{ timeout }}
|
|
|
|
{%- endfor %}
|
2015-02-24 16:19:02 -05:00
|
|
|
{% endif %}
|
|
|
|
{%- if 'errorfiles' in salt['pillar.get']('haproxy:defaults', {}) %}
|
2015-05-23 13:43:21 -04:00
|
|
|
{%- for errorfile in salt['pillar.get']('haproxy:defaults:errorfiles').iteritems() %}
|
|
|
|
errorfile {{ errorfile[0] }} {{ errorfile[1] }}
|
|
|
|
{%- endfor %}
|
2015-07-23 04:46:44 -04:00
|
|
|
{%- endif %}
|
2015-08-05 06:02:51 -04:00
|
|
|
{%- if salt['pillar.get']('haproxy:resolvers') %}
|
|
|
|
|
|
|
|
|
|
|
|
#------------------
|
|
|
|
# DNS resolvers
|
|
|
|
#------------------
|
|
|
|
{%- for resolver in salt['pillar.get']('haproxy:resolvers', {}).iteritems() %}
|
|
|
|
resolvers {{ resolver[0] }}
|
|
|
|
{%- if 'options' in resolver[1] %}
|
|
|
|
{%- for option in resolver[1].options %}
|
|
|
|
{{ option }}
|
|
|
|
{%- endfor %}
|
|
|
|
{%- endif %}
|
|
|
|
{%- endfor %}
|
|
|
|
{%- endif %}
|
2015-07-23 04:46:44 -04:00
|
|
|
{%- if 'listens' in salt['pillar.get']('haproxy', {}) %}
|
|
|
|
|
2015-02-24 16:19:02 -05:00
|
|
|
|
2015-07-21 11:42:56 -04:00
|
|
|
#------------------
|
2015-07-17 22:00:32 -04:00
|
|
|
# listen instances
|
2015-07-21 11:42:56 -04:00
|
|
|
#------------------
|
2015-07-23 04:46:44 -04:00
|
|
|
{%- for listener in salt['pillar.get']('haproxy:listens', {}).iteritems() %}
|
2015-07-21 11:42:56 -04:00
|
|
|
listen {{ listener[1].get('name', listener[0]) }}
|
2015-07-17 22:00:32 -04:00
|
|
|
{%- if 'bind' in listener[1] %}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- if listener[1].bind[1] is defined and listener[1].bind[1]|length > 1 %}
|
|
|
|
{%- for socket in listener[1].bind %}
|
2015-07-17 22:00:32 -04:00
|
|
|
bind {{ socket }}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- endfor %}
|
|
|
|
{%- elif listener[1].bind[0]|length > 1 %}
|
|
|
|
bind {{ listener[1].bind[0] }}
|
|
|
|
{%- else %}
|
|
|
|
bind {{ listener[1].bind }}
|
|
|
|
{%- endif %}
|
2015-07-17 22:00:32 -04:00
|
|
|
{%- endif %}
|
|
|
|
{%- if 'redirects' in listener[1] %}
|
|
|
|
{%- for front_redirect in listener[1].redirects %}
|
|
|
|
redirect {{ front_redirect }}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- endfor %}
|
2015-07-17 22:00:32 -04:00
|
|
|
{%- endif %}
|
|
|
|
{%- if 'acls' in listener[1] %}
|
|
|
|
{%- for acl in listener[1].acls %}
|
|
|
|
acl {{ acl }}
|
|
|
|
{%- endfor %}
|
|
|
|
{%- endif %}
|
|
|
|
{%- if 'reqadd' in listener[1] %}
|
|
|
|
{%- for reqadd in listener[1].reqadd %}
|
|
|
|
reqadd {{ reqadd }}
|
|
|
|
{%- endfor %}
|
|
|
|
{%- endif %}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- if 'default_backend' in listener[1] %}
|
2015-07-17 22:00:32 -04:00
|
|
|
default_backend {{ listener[1].default_backend }}
|
2015-07-21 11:42:56 -04:00
|
|
|
{% endif %}
|
|
|
|
{%- if 'use_backends' in listener[1] %}
|
|
|
|
{%- for use_backend in listener[1].use_backendsi %}
|
2015-07-17 22:00:32 -04:00
|
|
|
use_backend {{ use_backend }}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- endfor %}
|
|
|
|
{% endif %}
|
2015-07-17 22:00:32 -04:00
|
|
|
{%- if 'balance' in listener[1] %}
|
|
|
|
balance {{ listener[1].balance }}
|
2015-07-21 11:42:56 -04:00
|
|
|
{% endif %}
|
2015-07-17 22:00:32 -04:00
|
|
|
{%- if 'options' in listener[1] %}
|
|
|
|
{%- for option in listener[1].options %}
|
|
|
|
option {{ option }}
|
|
|
|
{%- endfor %}
|
2015-07-21 11:42:56 -04:00
|
|
|
{% endif %}
|
2015-07-17 22:00:32 -04:00
|
|
|
{%- if 'cookie' in listener[1] %}
|
|
|
|
cookie {{ listener[1].cookie }}
|
2015-07-21 11:42:56 -04:00
|
|
|
{% endif %}
|
2015-07-17 22:00:32 -04:00
|
|
|
{%- if 'stats' in listener[1] %}
|
|
|
|
{%- for option, value in listener[1].stats.iteritems() %}
|
|
|
|
{%- if option == 'enable' and value %}
|
|
|
|
stats enable
|
2015-07-21 11:42:56 -04:00
|
|
|
{% else %}
|
2015-07-17 22:00:32 -04:00
|
|
|
stats {{ option }} {{ value }}
|
2015-07-21 11:42:56 -04:00
|
|
|
{% endif %}
|
2015-07-17 22:00:32 -04:00
|
|
|
{%- endfor %}
|
2015-07-21 11:42:56 -04:00
|
|
|
{% endif %}
|
|
|
|
{%- if 'appsession' in listener[1] %}
|
|
|
|
appsession {%- for option in listener[1].appsession %} {{ option }} {%- endfor %}
|
|
|
|
{% endif %}
|
|
|
|
{%- if 'defaultserver' in listener[1] %}
|
|
|
|
default-server {%- for option, value in listener[1].defaultserver.iteritems() %} {{ ' '.join((option, value|string, '')) }} {%- endfor %}
|
|
|
|
{% endif %}
|
2015-07-17 22:00:32 -04:00
|
|
|
{%- if 'servers' in listener[1] %}
|
|
|
|
{%- for server in listener[1].servers.iteritems() %}
|
2015-07-21 11:42:56 -04:00
|
|
|
server {{ server[1].get('name',server[0]) }} {{ server[1].host }}:{{ server[1].port }} {{ server[1].check }}
|
|
|
|
{%- endfor %}
|
2015-07-17 22:00:32 -04:00
|
|
|
{% endif %}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- endfor %}
|
2015-07-23 04:46:44 -04:00
|
|
|
{%- endif %}
|
|
|
|
{%- if 'frontends' in salt['pillar.get']('haproxy', {}) %}
|
2015-02-24 16:19:02 -05:00
|
|
|
|
2015-07-21 11:42:56 -04:00
|
|
|
|
|
|
|
#------------------
|
2015-02-24 16:19:02 -05:00
|
|
|
# frontend instances
|
2015-07-21 11:42:56 -04:00
|
|
|
#------------------
|
2015-07-23 04:46:44 -04:00
|
|
|
{%- for frontend in salt['pillar.get']('haproxy:frontends', {}).iteritems() %}
|
2015-07-21 11:42:56 -04:00
|
|
|
frontend {{ frontend[1].get('name', frontend[0]) }}
|
2015-07-17 22:00:32 -04:00
|
|
|
{%- if 'bind' in frontend[1] %}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- if frontend[1].bind[1] is defined and frontend[1].bind[1]|length > 1 %}
|
|
|
|
{%- for socket in frontend[1].bind %}
|
2015-07-17 22:00:32 -04:00
|
|
|
bind {{ socket }}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- endfor %}
|
|
|
|
{%- elif frontend[1].bind[0]|length > 1 %}
|
|
|
|
bind {{ frontend[1].bind[0] }}
|
|
|
|
{%- else %}
|
|
|
|
bind {{ frontend[1].bind }}
|
|
|
|
{%- endif %}
|
2015-07-17 22:00:32 -04:00
|
|
|
{%- endif %}
|
2015-08-05 06:02:51 -04:00
|
|
|
{%- if 'options' in frontend[1] %}
|
|
|
|
{%- for option in frontend[1].options %}
|
|
|
|
{{ option }}
|
|
|
|
{%- endfor %}
|
|
|
|
{%- endif -%}
|
2015-05-23 13:43:21 -04:00
|
|
|
{%- if 'redirects' in frontend[1] %}
|
|
|
|
{%- for front_redirect in frontend[1].redirects %}
|
2015-07-21 11:42:56 -04:00
|
|
|
redirect {{ front_redirect }}
|
|
|
|
{%- endfor %}
|
|
|
|
{% endif %}
|
2015-05-23 13:43:21 -04:00
|
|
|
{%- if 'acls' in frontend[1] %}
|
|
|
|
{%- for acl in frontend[1].acls %}
|
2015-02-24 16:19:02 -05:00
|
|
|
acl {{ acl }}
|
2015-05-23 13:43:21 -04:00
|
|
|
{%- endfor %}
|
2015-07-21 11:42:56 -04:00
|
|
|
{% endif %}
|
2015-05-23 13:43:21 -04:00
|
|
|
{%- if 'reqadd' in frontend[1] %}
|
|
|
|
{%- for reqadd in frontend[1].reqadd %}
|
2015-02-24 16:19:02 -05:00
|
|
|
reqadd {{ reqadd }}
|
2015-05-23 13:43:21 -04:00
|
|
|
{%- endfor %}
|
2015-07-21 11:42:56 -04:00
|
|
|
{% endif %}
|
|
|
|
{%- if 'default_backend' in frontend[1] %}
|
2015-02-24 16:19:02 -05:00
|
|
|
default_backend {{ frontend[1].default_backend }}
|
2015-07-21 11:42:56 -04:00
|
|
|
{% endif %}
|
|
|
|
{%- if 'use_backends' in frontend[1] %}
|
2015-05-23 13:43:21 -04:00
|
|
|
{%- for use_backend in frontend[1].use_backends %}
|
2015-02-24 16:19:02 -05:00
|
|
|
use_backend {{ use_backend }}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- endfor %}
|
2015-07-23 04:46:44 -04:00
|
|
|
{%- endif %}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- endfor %}
|
2015-07-23 04:46:44 -04:00
|
|
|
{%- endif %}
|
|
|
|
{%- if 'backends' in salt['pillar.get']('haproxy', {}) %}
|
|
|
|
|
2015-02-24 16:19:02 -05:00
|
|
|
|
2015-07-21 11:42:56 -04:00
|
|
|
#------------------
|
2015-02-24 16:19:02 -05:00
|
|
|
# backend instances
|
2015-07-21 11:42:56 -04:00
|
|
|
#------------------
|
2015-07-23 04:46:44 -04:00
|
|
|
{%- for backend in salt['pillar.get']('haproxy:backends', {}).iteritems() %}
|
2015-07-21 11:42:56 -04:00
|
|
|
backend {{ backend[1].get('name',backend[0]) }}
|
|
|
|
{%- if 'redirects' in backend[1] %}
|
|
|
|
{%- for redirect in backend[1].redirects %}
|
|
|
|
redirect {{ redirect }}
|
|
|
|
{%- endfor %}
|
|
|
|
{% endif %}
|
|
|
|
{%- if 'balance' in backend[1] %}
|
2015-02-24 16:19:02 -05:00
|
|
|
balance {{ backend[1].balance }}
|
2015-07-23 04:46:44 -04:00
|
|
|
{%- endif %}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- if 'options' in backend[1] %}
|
|
|
|
{%- for option in backend[1].options %}
|
2015-05-20 10:12:43 -04:00
|
|
|
option {{ option }}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- endfor %}
|
|
|
|
{% endif %}
|
|
|
|
{%- if 'cookie' in backend[1] %}
|
2015-05-20 10:12:43 -04:00
|
|
|
cookie {{ backend[1].cookie }}
|
2015-07-21 11:42:56 -04:00
|
|
|
{% endif %}
|
|
|
|
{%- if 'stats' in backend[1] %}
|
|
|
|
{%- for option, value in backend[1].stats.iteritems() %}
|
|
|
|
{%- if option == 'enable' and value %}
|
2015-05-20 10:12:43 -04:00
|
|
|
stats enable
|
2015-07-21 11:42:56 -04:00
|
|
|
{% else %}
|
2015-05-20 10:12:43 -04:00
|
|
|
stats {{ option }} {{ value }}
|
2015-07-21 11:42:56 -04:00
|
|
|
{% endif %}
|
|
|
|
{%- endfor %}
|
|
|
|
{% endif %}
|
|
|
|
{%- if 'defaultserver' in backend[1] %}
|
|
|
|
default-server {%- for option, value in backend[1].defaultserver.iteritems() %} {{ ' '.join((option, value|string, '')) }} {%- endfor %}
|
2015-07-23 04:46:44 -04:00
|
|
|
{%- endif %}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- if 'servers' in backend[1] %}
|
|
|
|
{%- for server in backend[1].servers.iteritems() %}
|
2015-08-05 06:02:51 -04:00
|
|
|
server {{ server[1].get('name',server[0]) }} {{ server[1].host }}:{{ server[1].port }} {{ server[1].check }} {{ server[1].get('extra', '') }}
|
2015-07-21 11:42:56 -04:00
|
|
|
{%- endfor %}
|
|
|
|
{% endif %}
|
|
|
|
{%- endfor %}
|
2015-07-23 04:46:44 -04:00
|
|
|
{%- endif %}
|