diff --git a/haproxy/config.sls b/haproxy/config.sls index e8c9865..b70f570 100644 --- a/haproxy/config.sls +++ b/haproxy/config.sls @@ -1,14 +1,13 @@ +{% from "haproxy/map.jinja" import haproxy with context %} + +{% set config_file = salt['pillar.get']('haproxy:config_file_path', haproxy.config_file) %} haproxy.config: file.managed: - - name: {{ salt['pillar.get']('haproxy:config_file_path', '/etc/haproxy/haproxy.cfg') }} - - source: salt://haproxy/templates/haproxy.jinja + - name: {{ config_file }} + - source: {{ haproxy.config_file_source }} - template: jinja - - user: root - {% if salt['grains.get']('os_family') == 'FreeBSD' %} - - group: wheel - {% else %} - - group: root - {% endif %} + - user: {{ haproxy.user }} + - group: {{ haproxy.group }} - mode: 644 - require_in: - service: haproxy.service @@ -16,5 +15,5 @@ haproxy.config: - service: haproxy.service {% if salt['pillar.get']('haproxy:overwrite', default=True) == False %} - unless: - - test -e {{ salt['pillar.get']('haproxy:config_file_path', '/etc/haproxy/haproxy.cfg') }} + - test -e {{ config_file }} {% endif %} diff --git a/haproxy/install.sls b/haproxy/install.sls index 736320f..2a971fa 100644 --- a/haproxy/install.sls +++ b/haproxy/install.sls @@ -1,6 +1,8 @@ +{% from "haproxy/map.jinja" import haproxy with context %} + haproxy.install: pkg.installed: - - name: haproxy + - name: {{ haproxy.package }} {% if salt['pillar.get']('haproxy:require') %} - require: {% for item in salt['pillar.get']('haproxy:require') %} diff --git a/haproxy/map.jinja b/haproxy/map.jinja new file mode 100644 index 0000000..158ef5c --- /dev/null +++ b/haproxy/map.jinja @@ -0,0 +1,14 @@ +{% set haproxy = salt['grains.filter_by']({ + 'default': { + 'package': 'haproxy', + 'config_file': '/etc/haproxy/haproxy.cfg', + 'config_file_source': 'salt://haproxy/templates/haproxy.jinja', + 'user': 'root', + 'group': 'root', + 'service': 'haproxy', + }, + 'FreeBSD': { + 'group': 'wheel', + }, +}, merge=salt['pillar.get']('haproxy:lookup'), base='default') %} + diff --git a/haproxy/service.sls b/haproxy/service.sls index 21c8434..6883315 100644 --- a/haproxy/service.sls +++ b/haproxy/service.sls @@ -1,7 +1,9 @@ +{% from "haproxy/map.jinja" import haproxy with context %} + haproxy.service: {% if salt['pillar.get']('haproxy:enable', True) %} service.running: - - name: haproxy + - name: {{ haproxy.service }} - enable: True - reload: True - require: diff --git a/pillar.example b/pillar.example index ef8fcf9..a83917e 100644 --- a/pillar.example +++ b/pillar.example @@ -3,9 +3,16 @@ # haproxy: + # use lookup section to override 'map.jinja' values + #lookup: + #user: 'custom-user' + #group: 'custom-group' + # new setting to override configuration file path + #config_file: /etc/haproxy/haproxy.cfg enabled: True overwrite: True # Overwrite an existing config file if present (default behaviour unless set to false) - config_file_path: /etc/haproxy/haproxy.cfg + # old setting to override configuration file path, kept for compatibility + #config_file_path: /etc/haproxy/haproxy.cfg global: log: - 127.0.0.1 local2