Private
Public Access
2
0

caddy: optimize Go and Caddy installs

This commit is contained in:
2026-01-23 11:21:13 +03:00
parent c217cc8d7c
commit 1a0b44ccf4

View File

@@ -1,11 +1,3 @@
- name: Remove packaged Go
ansible.builtin.apt:
name:
- "golang"
state: "absent"
autoremove: true
purge: true
- name: Install requirements - name: Install requirements
ansible.builtin.apt: ansible.builtin.apt:
name: name:
@@ -25,12 +17,6 @@
dest: "/usr/local/go-{{ caddy_go_version }}" dest: "/usr/local/go-{{ caddy_go_version }}"
remote_src: true remote_src: true
- name: Link Go
ansible.builtin.file:
src: "/usr/local/go-{{ caddy_go_version }}/go/bin/go"
dest: "/usr/local/bin/go"
state: "link"
- name: Create xcaddy directory - name: Create xcaddy directory
ansible.builtin.file: ansible.builtin.file:
path: "/usr/local/xcaddy-{{ caddy_xcaddy_version }}" path: "/usr/local/xcaddy-{{ caddy_xcaddy_version }}"
@@ -39,39 +25,37 @@
- name: Install xcaddy - name: Install xcaddy
ansible.builtin.unarchive: ansible.builtin.unarchive:
src: "{{ caddy_xcaddy_download }}/v{{ caddy_xcaddy_version }}/xcaddy_{{ caddy_xcaddy_version }}_linux_amd64.tar.gz" src: "https://github.com/caddyserver/xcaddy/releases/download/v{{ caddy_xcaddy_version }}/xcaddy_{{ caddy_xcaddy_version }}_linux_amd64.tar.gz"
dest: "/usr/local/xcaddy-{{ caddy_xcaddy_version }}" dest: "/usr/local/xcaddy-{{ caddy_xcaddy_version }}"
remote_src: true remote_src: true
- name: Link xcaddy
ansible.builtin.file:
src: "/usr/local/xcaddy-{{ caddy_xcaddy_version }}/xcaddy"
dest: "/usr/local/bin/xcaddy"
state: "link"
- name: Create Caddy build command - name: Create Caddy build command
ansible.builtin.set_fact: ansible.builtin.set_fact:
caddy_build_command: > caddy_build_command: >
xcaddy build v{{ caddy_caddy_version }} /usr/local/xcaddy-{{ caddy_xcaddy_version }}/xcaddy build v{{ caddy_version }}
--with github.com/pteich/caddy-tlsconsul --with github.com/pteich/caddy-tlsconsul
--with github.com/corazawaf/coraza-caddy/v2@v{{ caddy_coraza_caddy_version }} --with github.com/corazawaf/coraza-caddy/v2@v{{ caddy_coraza_caddy_version }}
--with github.com/mholt/caddy-ratelimit --with github.com/mholt/caddy-ratelimit
--with github.com/steffenbusch/caddy-bot-barrier --with github.com/steffenbusch/caddy-bot-barrier
--output /usr/local/bin/caddy --output /usr/local/bin/{{ caddy_my_name }}
- name: Test Caddy version - name: Remember and test Caddy version
ansible.builtin.copy: ansible.builtin.copy:
dest: "/usr/local/bin/.caddy.build" dest: "/usr/local/bin/.caddy.build"
content: "{{ caddy_build_command }}" content: >
XCADDY_WHICH_GO=/usr/local/go-{{ caddy_go_version }}/go/bin/go
{{ caddy_build_command }}"
mode: "0644" mode: "0644"
register: caddy_test_caddy_version register: caddy_test_caddy_version
- name: Build Caddy - name: Build Caddy
# noqa: no-handler # noqa: no-handler
when: "caddy_test_caddy_version.changed" when: "caddy_test_caddy_version.changed"
environment:
XCADDY_WHICH_GO: "/usr/local/go-{{ caddy_go_version }}/go/bin/go"
ansible.builtin.command: ansible.builtin.command:
cmd: "{{ caddy_build_command }}" cmd: "{{ caddy_build_command }}"
creates: "/usr/local/bin/caddy" creates: "/usr/local/bin/{{ caddy_my_name }}"
notify: notify:
- "Restart Caddy" - "Restart Caddy"
@@ -108,8 +92,9 @@
mode: "0770" mode: "0770"
- name: Install OWASP CRS - name: Install OWASP CRS
loop: "{{ caddy_owasp_crs_versions }}"
ansible.builtin.unarchive: ansible.builtin.unarchive:
src: "https://github.com/coreruleset/coreruleset/archive/refs/tags/v{{ caddy_owasp_crs_version }}.tar.gz" src: "https://github.com/coreruleset/coreruleset/archive/refs/tags/v{{ item }}.tar.gz"
dest: "{{ caddy_config_dir }}" dest: "{{ caddy_config_dir }}"
group: "{{ caddy_system_group }}" group: "{{ caddy_system_group }}"
remote_src: true remote_src: true
@@ -123,13 +108,7 @@
- name: Deploy caddy service file - name: Deploy caddy service file
ansible.builtin.template: ansible.builtin.template:
src: "templates/caddy.service" src: "templates/caddy.service"
dest: "/etc/systemd/system/{{ caddy_system_user }}.service" dest: "/etc/systemd/system/{{ caddy_my_name }}.service"
mode: "0644" mode: "0644"
notify: notify:
- "Restart Caddy" - "Restart Caddy"
- name: Enable Caddy
ansible.builtin.service:
name: "{{ caddy_system_user }}"
enabled: true
daemon_reload: true