--- # Server/Caddyserver-Install: Install/Update Caddy Webserver (with some modules) # Detect some more host facts - name: caddyserver - Detect debian distributor ID shell: lsb_release -is register: lsb_id - name: caddyserver - Create cache directory file: path: "{{ caddy_cachedir }}" state: directory - name: caddyserver - Get all caddy releases get_url: url: https://api.github.com/repos/caddyserver/caddy/git/refs/tags dest: "{{ caddy_cachedir }}/releases.txt" force: yes register: caddy_releases_cache - name: caddyserver - Install or update block: - name: caddyserver - Make temp download directory file: path: "{{ caddy_cachedir }}/tmp" state: directory - name: caddyserver - Download caddy webserver (amd64) get_url: url: "https://caddyserver.com/download/linux/amd64?plugins=http.ratelimit&license=personal" dest: "{{ caddy_cachedir }}/tmp/caddy.tar.gz" when: lsb_id.stdout != "Raspbian" - name: caddyserver - Download caddy webserver (raspberry pi) get_url: url: "https://caddyserver.com/download/linux/arm7?plugins=http.ratelimit&license=personal" dest: "{{ caddy_cachedir }}/tmp/caddy.tar.gz" when: lsb_id.stdout == "Raspbian" - name: caddyserver - Stop caddy become: yes service: name: caddy state: stopped ignore_errors: yes - name: caddyserver - Extract caddy shell: "cd {{ caddy_cachedir }}/tmp && tar -xvf caddy.tar.gz" - name: caddyserver - Copy caddy to a PATH location become: yes shell: "cp {{ caddy_cachedir }}/tmp/caddy /usr/local/bin" - name: caddyserver - Clean up download files become: yes file: path: "{{ caddy_cachedir }}/tmp" state: absent - name: caddyserver - Install caddy APT dependencies become: yes apt: name: libcap2-bin state: present - name: caddyserver - Give caddy port binding capabilities become: yes shell: "setcap cap_net_bind_service=+ep /usr/local/bin/caddy" # capabilities: # path: "{{ caddy_bin }}" # capability: cap_net_bind_service+ep # state: present when: caddy_releases_cache.changed