2 changed files with 76 additions and 1 deletions
@ -1,7 +1,30 @@
|
||||
--- |
||||
- name: main haproxy block |
||||
vars: {} |
||||
vars: |
||||
install_certbot: true |
||||
block: |
||||
- debug: |
||||
var: groups['containers'] |
||||
|
||||
- name: install pakages |
||||
apk: |
||||
name: [ haproxy ] |
||||
|
||||
- name: create haproxy routes for other containers |
||||
template: |
||||
src: templates/haproxy.cfg.j2 |
||||
dest: /etc/haproxy/haproxy.cfg |
||||
|
||||
- name: restart haproxy service |
||||
service: |
||||
name: haproxy |
||||
enabled: yes |
||||
state: restarted |
||||
|
||||
- name: install certbot |
||||
apk: |
||||
name: [ certbot ] |
||||
when: install_certbot |
||||
|
||||
# TODO: route web roots for each container in haproxy.conf |
||||
# NOTE: can use *.lxd domain names in haproxy container |
||||
|
||||
@ -0,0 +1,52 @@
|
||||
global |
||||
log 127.0.0.1 local2 |
||||
|
||||
chroot /var/lib/haproxy |
||||
pidfile /var/run/haproxy.pid |
||||
maxconn 4000 |
||||
user haproxy |
||||
group haproxy |
||||
daemon |
||||
stats socket /var/lib/haproxy/stats |
||||
|
||||
defaults |
||||
mode http |
||||
log global |
||||
option httplog |
||||
option dontlognull |
||||
option http-server-close |
||||
option forwardfor except 127.0.0.0/8 |
||||
option redispatch |
||||
retries 3 |
||||
timeout http-request 10s |
||||
timeout queue 1m |
||||
timeout connect 10s |
||||
timeout client 1m |
||||
timeout server 1m |
||||
timeout http-keep-alive 10s |
||||
timeout check 10s |
||||
maxconn 3000 |
||||
|
||||
frontend main |
||||
bind *:80 |
||||
|
||||
{% for c in groups['containers'] %} |
||||
{% if c != 'haproxy' %} |
||||
acl {{ c }}_path path_beg -i /{{ c }} |
||||
use_backend {{ c }} if {{ c }}_path |
||||
|
||||
{% endif %} |
||||
{% endfor %} |
||||
# default_backend dokuwiki |
||||
|
||||
{% for c in groups['containers'] %} |
||||
{# NOTE: don't add haproxy to list of containers :P #} |
||||
{% if c != 'haproxy' %} |
||||
backend {{ c }} |
||||
{# NOTE: gallery container expects /gallery/ prefix #} |
||||
{% if c != 'gallery' %} |
||||
http-request replace-path /{{ c }}/(.*) /\1 |
||||
{% endif %} |
||||
server {{ c }}_1 {{ c }}.lxd:80 check |
||||
{% endif %} |
||||
{% endfor %} |
||||
Loading…
Reference in new issue