93 lines
2.6 KiB
YAML
93 lines
2.6 KiB
YAML
#SPDX-License-Identifier: GPL-3.0-only
|
|
---
|
|
- name: "Create Traefik System Group"
|
|
ansible.builtin.group:
|
|
name: '{{ traefik_name }}'
|
|
system: true
|
|
|
|
- name: "Create Traefik System User"
|
|
ansible.builtin.user:
|
|
name: '{{ traefik_name }}'
|
|
system: true
|
|
shell: '/bin/false'
|
|
group: '{{ traefik_name }}'
|
|
create_home: false
|
|
|
|
- name: "Download Version"
|
|
register: download_version
|
|
ansible.builtin.get_url:
|
|
url: "{{ traefik_url }}_linux_amd64.tar.gz"
|
|
dest: "{{ _download }}"
|
|
checksum: "sha256:{{ traefik_url }}_checksums.txt"
|
|
|
|
- name: "Create Bin Folder"
|
|
ansible.builtin.file:
|
|
path: "{{ traefik_opt }}"
|
|
state: directory
|
|
owner: '{{ traefik_name }}'
|
|
group: '{{ traefik_name }}'
|
|
|
|
- name: "Expand Version"
|
|
when: download_version.changed
|
|
ansible.builtin.unarchive:
|
|
src: "{{ _download }}/{{ traefik_name }}_{{ traefik_version }}_linux_amd64.tar.gz"
|
|
dest: "{{ traefik_opt }}"
|
|
remote_src: true
|
|
|
|
- name: "Change Folder Permissions"
|
|
when: download_version.changed
|
|
notify: traefik_restart
|
|
ansible.builtin.file:
|
|
path: "{{ traefik_opt }}"
|
|
state: directory
|
|
recurse: yes
|
|
owner: '{{ traefik_name }}'
|
|
group: '{{ traefik_name }}'
|
|
|
|
- name: "Create Config Folder"
|
|
ansible.builtin.file:
|
|
path: '{{ traefik_conf_d }}'
|
|
state: directory
|
|
owner: '{{ traefik_name }}'
|
|
group: '{{ traefik_name }}'
|
|
|
|
- name: "Template Traefik Service"
|
|
register: template_traefik_service
|
|
ansible.builtin.template:
|
|
src: '../templates/{{ traefik_name }}-service.j2'
|
|
dest: '{{ systemd_conf }}/{{ traefik_name }}.service'
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
backup: false
|
|
|
|
- name: "Enable Traefik Service"
|
|
when: template_traefik_service.changed
|
|
ansible.builtin.systemd:
|
|
name: '{{ traefik_name }}.service'
|
|
daemon_reload: true
|
|
enabled: true
|
|
|
|
- name: "Template Traefik Config"
|
|
notify: traefik_restart
|
|
ansible.builtin.template:
|
|
src: '../templates/{{ traefik_name }}-config.j2'
|
|
dest: '{{ traefik_etc }}/{{ traefik_name }}.yml'
|
|
owner: '{{ traefik_name }}'
|
|
group: '{{ traefik_name }}'
|
|
mode: "0644"
|
|
backup: false
|
|
|
|
- name: "Template Traefik Routing Configs"
|
|
ansible.builtin.copy:
|
|
content: '{{ item.content | to_nice_yaml(indent=2) }}'
|
|
dest: '{{ traefik_conf_d }}/routing-{{ item.name }}-config.yml'
|
|
owner: '{{ traefik_name }}'
|
|
group: '{{ traefik_name }}'
|
|
mode: "0644"
|
|
loop:
|
|
- { name: 'http', content: '{{ traefik_routing_http }}' }
|
|
- { name: 'tcp', content: '{{ traefik_routing_tcp }}' }
|
|
- { name: 'udp', content: '{{ traefik_routing_udp }}' }
|
|
- { name: 'tls', content: '{{ traefik_routing_tls }}' }
|