Skip to content
Snippets Groups Projects
Verified Commit 4cd3c96c authored by Nicolas Lenz's avatar Nicolas Lenz :snowflake:
Browse files

add http-errors

parent 737c246e
No related branches found
No related tags found
No related merge requests found
Pipeline #199111 failed
......@@ -35,6 +35,9 @@ Role Variables
* `haproxy_listen`
A list of listen proxies.
* `haproxy_http_errors`
A list of http-errors sections containing errorfiles for various status codes.
Here is a complete list of variables:
```
......
......@@ -99,6 +99,40 @@
loop: "{{ haproxy_backends }}"
when: haproxy_backends is defined
## ASSEMBLE CONFIG - HTTP-ERRORS
- name: 'Create directory for the http-errors'
ansible.builtin.file:
path: "{{ haproxy_config_dir }}/http-errors.d"
state: directory
owner: root
group: root
mode: 0755
- name: "List files for the http-errors"
ansible.builtin.find:
paths: "{{ haproxy_config_dir }}/http-errors.d"
patterns: "*.cfg"
register: directory_contents
changed_when: false
- name: "Remove unmanaged files for the http-errors"
ansible.builtin.file:
path: "{{ item.path }}"
state: absent
when: (item.path | basename) not in (haproxy_http-errors | json_query('[*].name') | map('regex_replace', '(^.*$)', '\\1.cfg') | list)
loop: "{{ directory_contents.files }}"
- name: 'Build up the http-errors'
ansible.builtin.template:
src: "backend.cfg"
dest: "{{ haproxy_config_dir }}/http-errors.d/{{ item.name }}.cfg"
owner: root
group: root
mode: 0644
loop: "{{ haproxy_http_errors }}"
when: haproxy_http_errors is defined
## ASSEMBLE CONFIG - LISTEN
- name: 'Create directory for the listen sections'
......@@ -236,6 +270,14 @@
group: root
mode: 0644
- name: 'Assemble the http-errors configuration file'
ansible.builtin.assemble:
src: "{{ haproxy_config_dir }}/http-errors.d"
dest: "{{ haproxy_config_dir }}/compiled/07-http-errors.cfg"
owner: root
group: root
mode: 0644
- name: 'Assemble the final configuration file'
ansible.builtin.assemble:
src: "{{ haproxy_config_dir }}/compiled"
......
......@@ -113,3 +113,7 @@ frontend {{ item.name }} {%if item.ip is defined %}{{ item.ip }}{% endif %}{%if
use_backend {{ backend.name }} {{ backend.condition }}
{% endfor -%}
{% endif -%}
{%- if item.errorfiles -%}
errorfiles {% item.errorfiles %}
{% endif %}
{%- import '_macros.j2' as macros with context -%}
#{{ ansible_managed }}
http-errors {{ item.name }}
{% if item.errorfiles is defined %}
{%- for errorfile in item.errorfiles -%}
errorfile {{ errorfile.status }} {{ errorfile.file }}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment