Socket activation - preserve src ip #1
7
roles/infra/files/http.socket
Normal file
7
roles/infra/files/http.socket
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[Socket]
|
||||||
|
ListenStream=80
|
||||||
|
FileDescriptorName=http
|
||||||
|
Service=traefik.service
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=sockets.target
|
||||||
7
roles/infra/files/https.socket
Normal file
7
roles/infra/files/https.socket
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[Socket]
|
||||||
|
ListenStream=443
|
||||||
|
FileDescriptorName=https
|
||||||
|
Service=traefik.service
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=sockets.target
|
||||||
@@ -42,53 +42,21 @@
|
|||||||
|
|
||||||
- name: Install traefik http socket
|
- name: Install traefik http socket
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
|
src: http.socket
|
||||||
dest: ~/.config/systemd/user/http.socket
|
dest: ~/.config/systemd/user/http.socket
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
content: |
|
|
||||||
[Socket]
|
|
||||||
ListenStream=80
|
|
||||||
FileDescriptorName=http
|
|
||||||
Service=traefik.service
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=sockets.target
|
|
||||||
|
|
||||||
- name: Install traefik https socket
|
- name: Install traefik https socket
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
|
src: https.socket
|
||||||
dest: ~/.config/systemd/user/https.socket
|
dest: ~/.config/systemd/user/https.socket
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
content: |
|
|
||||||
[Socket]
|
|
||||||
ListenStream=443
|
|
||||||
FileDescriptorName=https
|
|
||||||
Service=traefik.service
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=sockets.target
|
|
||||||
|
|
||||||
- name: Install traefik quadlet
|
- name: Install traefik quadlet
|
||||||
ansible.builtin.copy:
|
ansible.builtin.template:
|
||||||
|
src: traefik.container.j2
|
||||||
dest: ~/.config/containers/systemd/traefik.container
|
dest: ~/.config/containers/systemd/traefik.container
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
content: |
|
|
||||||
[Unit]
|
|
||||||
After=podman.socket http.socket https.socket
|
|
||||||
Requires=podman.socket http.socket https.socket
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Sockets=http.socket https.socket
|
|
||||||
Restart=always
|
|
||||||
|
|
||||||
[Container]
|
|
||||||
ContainerName=traefik
|
|
||||||
Image=docker.io/library/traefik:latest
|
|
||||||
Exec=--api.dashboard=true --api.insecure=true --certificatesresolvers.lets-encrypt.acme.email={{ infra_acme.email }} --certificatesresolvers.lets-encrypt.acme.storage=/{{ infra_acme.storage }} --certificatesresolvers.lets-encrypt.acme.tlschallenge=true --entrypoints.http --entrypoints.http.http.redirections.entryPoint.to=https --entrypoints.http.http.redirections.entryPoint.scheme=https --entrypoints.https --providers.docker=true
|
|
||||||
Network=podman
|
|
||||||
Notify=true
|
|
||||||
PublishPort=8080:8080
|
|
||||||
SecurityLabelDisable=true
|
|
||||||
Volume=%t/podman/podman.sock:/var/run/docker.sock
|
|
||||||
Volume=%h/{{ infra_acme.storage }}:/{{ infra_acme.storage }}:Z
|
|
||||||
|
|
||||||
- name: Reload systemd user units
|
- name: Reload systemd user units
|
||||||
ansible.builtin.systemd_service:
|
ansible.builtin.systemd_service:
|
||||||
|
|||||||
18
roles/infra/templates/traefik.container.j2
Normal file
18
roles/infra/templates/traefik.container.j2
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
[Unit]
|
||||||
|
After=podman.socket http.socket https.socket
|
||||||
|
Requires=podman.socket http.socket https.socket
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Sockets=http.socket https.socket
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
[Container]
|
||||||
|
ContainerName=traefik
|
||||||
|
Image=docker.io/library/traefik:latest
|
||||||
|
Exec=--api.dashboard=true --api.insecure=true --certificatesresolvers.lets-encrypt.acme.email={{ infra_acme.email }} --certificatesresolvers.lets-encrypt.acme.storage=/{{ infra_acme.storage }} --certificatesresolvers.lets-encrypt.acme.tlschallenge=true --entrypoints.http --entrypoints.http.http.redirections.entryPoint.to=https --entrypoints.http.http.redirections.entryPoint.scheme=https --entrypoints.https --providers.docker=true
|
||||||
|
Network=podman
|
||||||
|
Notify=true
|
||||||
|
PublishPort=8080:8080
|
||||||
|
SecurityLabelDisable=true
|
||||||
|
Volume=%t/podman/podman.sock:/var/run/docker.sock
|
||||||
|
Volume=%h/{{ infra_acme.storage }}:/{{ infra_acme.storage }}:Z
|
||||||
Reference in New Issue
Block a user