mirror of https://dev.ccchb.de/ccchb/ansible.git
156 lines
3.4 KiB
YAML
156 lines
3.4 KiB
YAML
|
---
|
|||
|
- name: Install HAProxy
|
|||
|
package:
|
|||
|
name: haproxy
|
|||
|
state: present
|
|||
|
notify:
|
|||
|
- Restart HAProxy
|
|||
|
|
|||
|
- name: Create HAProxy group
|
|||
|
group:
|
|||
|
name: haproxy
|
|||
|
gid: 20001
|
|||
|
notify:
|
|||
|
- Restart HAProxy
|
|||
|
|
|||
|
- name: Create HAProxy user
|
|||
|
user:
|
|||
|
name: haproxy
|
|||
|
uid: 20001
|
|||
|
group: haproxy
|
|||
|
create_home: no
|
|||
|
home: /var/empty
|
|||
|
notify:
|
|||
|
- Restart HAProxy
|
|||
|
|
|||
|
- name: Create HAProxy service directories
|
|||
|
file:
|
|||
|
path: '/etc/s6-rc/service/{{ item }}'
|
|||
|
state: directory
|
|||
|
owner: root
|
|||
|
group: wheel
|
|||
|
mode: 0755
|
|||
|
with_items:
|
|||
|
- haproxy
|
|||
|
- haproxy/env
|
|||
|
- haproxy/data
|
|||
|
- haproxy-log
|
|||
|
- haproxy-log/env
|
|||
|
|
|||
|
- name: Generate HAProxy service scripts
|
|||
|
template:
|
|||
|
dest: '/etc/s6-rc/service/{{ item }}'
|
|||
|
src: '{{ item }}.j2'
|
|||
|
mode: 0555
|
|||
|
owner: root
|
|||
|
group: wheel
|
|||
|
with_items:
|
|||
|
- haproxy/run
|
|||
|
- haproxy/finish
|
|||
|
- haproxy/data/check
|
|||
|
- haproxy-log/run
|
|||
|
- haproxy-log/finish
|
|||
|
notify:
|
|||
|
- Reload s6-rc
|
|||
|
- Restart HAProxy
|
|||
|
|
|||
|
- name: Generate HAProxy service configuration
|
|||
|
copy:
|
|||
|
dest: '/etc/s6-rc/service/{{ item.name }}'
|
|||
|
content: '{{ item.content }}'
|
|||
|
mode: 0444
|
|||
|
owner: root
|
|||
|
group: wheel
|
|||
|
loop_control:
|
|||
|
label: '{{ item.name }} = {{ item.content }}'
|
|||
|
notify:
|
|||
|
- Reload s6-rc
|
|||
|
- Restart HAProxy
|
|||
|
with_items:
|
|||
|
- name: haproxy/type
|
|||
|
content: longrun
|
|||
|
- name: haproxy/notification-fd
|
|||
|
content: 3
|
|||
|
- name: haproxy/producer-for
|
|||
|
content: haproxy-log
|
|||
|
- name: haproxy/env/NAME
|
|||
|
content: haproxy
|
|||
|
- name: haproxy/env/PATH
|
|||
|
content: /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
|
|||
|
- name: haproxy/env/BIND_V4
|
|||
|
content: '{{ haproxy_v4 }}'
|
|||
|
- name: haproxy/env/BIND_V6
|
|||
|
content: '{{ haproxy_v6 }}'
|
|||
|
|
|||
|
- name: haproxy-log/type
|
|||
|
content: longrun
|
|||
|
- name: haproxy-log/notification-fd
|
|||
|
content: 3
|
|||
|
- name: haproxy-log/consumer-for
|
|||
|
content: haproxy
|
|||
|
- name: haproxy-log/env/NAME
|
|||
|
content: haproxy
|
|||
|
- name: haproxy-log/env/PATH
|
|||
|
content: /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
|
|||
|
- name: haproxy-log/env/MODE
|
|||
|
content: '750'
|
|||
|
- name: haproxy-log/env/USER
|
|||
|
content: s6-log
|
|||
|
- name: haproxy-log/env/GROUP
|
|||
|
content: s6-log
|
|||
|
- name: haproxy-log/env/DIR
|
|||
|
content: /var/log/haproxy
|
|||
|
|
|||
|
- name: Create HAProxy configuration directory
|
|||
|
file:
|
|||
|
path: /usr/local/etc/haproxy
|
|||
|
state: directory
|
|||
|
owner: root
|
|||
|
group: wheel
|
|||
|
mode: 0755
|
|||
|
|
|||
|
- name: Configure HAProxy
|
|||
|
template:
|
|||
|
dest: '/usr/local/etc/haproxy/{{ item }}'
|
|||
|
src: '{{ item }}.j2'
|
|||
|
owner: root
|
|||
|
group: wheel
|
|||
|
mode: 0444
|
|||
|
notify:
|
|||
|
- Reload HAProxy
|
|||
|
with_items:
|
|||
|
- defaults.cfg
|
|||
|
- global.cfg
|
|||
|
- http.cfg
|
|||
|
|
|||
|
- name: Config HAProxy HTTP backends
|
|||
|
template:
|
|||
|
dest: '/usr/local/etc/haproxy/http_{{ item.host }}.cfg'
|
|||
|
src: http_host.cfg.j2
|
|||
|
owner: root
|
|||
|
group: wheel
|
|||
|
mode: 0444
|
|||
|
notify:
|
|||
|
- Reload HAProxy
|
|||
|
with_items: '{{ haproxy_http }}'
|
|||
|
|
|||
|
- name: Enable HAProxy HTTP backends
|
|||
|
lineinfile:
|
|||
|
path: /usr/local/etc/haproxy/http.map
|
|||
|
regex: '^{{ item.host }} '
|
|||
|
line: '{{ item.host }} http_{{ item.host }}'
|
|||
|
notify:
|
|||
|
- Reload HAProxy
|
|||
|
with_items: '{{ haproxy_http }}'
|
|||
|
|
|||
|
- name: Make sure the http map exists
|
|||
|
command: env touch /usr/local/etc/haproxy/http.map
|
|||
|
args:
|
|||
|
creates:
|
|||
|
/usr/local/etc/haproxy/http.map
|
|||
|
notify:
|
|||
|
- Reload HAProxy
|
|||
|
|
|||
|
- name: Flush handlers
|
|||
|
meta: flush_handlers
|