diff --git a/defaults/main.yml b/defaults/main.yml index a21c573..c5bdf3f 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -3,6 +3,8 @@ borgbackup_ssh_id: "/home/{{ ansible_user_id }}/.ssh/id_ed25519" +caddy_cachedir: "/home/{{ ansible_user_id }}/.ansbl-caddy-cache" + telegraf_interval: "300s" telegraf_docker_file: "telegraf-docker.conf" telegraf_snmp_file: "telegraf-SNMP.conf" diff --git a/tasks/caddy-install.yml b/tasks/caddy-install.yml index 1176b32..e0365ed 100644 --- a/tasks/caddy-install.yml +++ b/tasks/caddy-install.yml @@ -6,48 +6,63 @@ shell: lsb_release -is register: lsb_id -- name: caddyserver - Stop caddy - become: yes - service: - name: caddy - state: stopped - ignore_errors: yes - -- name: caddyserver - Make temp download directory +- name: caddyserver - Create cache directory file: - path: /tmp/caddy + path: "{{ caddy_cachedir }}" state: directory -- name: caddyserver - Download caddy webserver (amd64) +- name: caddyserver - Get all caddy releases get_url: - url: "https://caddyserver.com/download/linux/amd64?plugins=http.ratelimit&license=personal" - dest: /tmp/caddy/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: /tmp/caddy/caddy.tar.gz - when: lsb_id.stdout == "Raspbian" + url: https://api.github.com/repos/caddyserver/caddy/git/refs/tags + dest: "{{ caddy_cachedir }}/releases.txt" + force: yes + register: caddy_releases_cache -- name: caddyserver - Extract caddy - shell: "cd /tmp/caddy && tar -xvf caddy.tar.gz" -- name: caddyserver - Copy caddy to a PATH location - become: yes - shell: "cp /tmp/caddy/caddy /usr/local/bin" -- name: caddyserver - Clean up download files - become: yes - file: - path: /tmp/caddy - 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 +- 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 diff --git a/tasks/cronmails.yml b/tasks/cronmails.yml index e78484f..cef921c 100644 --- a/tasks/cronmails.yml +++ b/tasks/cronmails.yml @@ -21,14 +21,17 @@ copy: src: "{{ role_path }}/files/exim4.conf.template" dest: /etc/exim4/exim4.conf.template + register: cronmails_conftmp_update - name: cronmails - Copy exim4 config file become: yes template: src: "{{ role_path }}/templates/update-exim4.conf.conf" dest: /etc/exim4/update-exim4.conf.conf + register: cronmails_conffile_update - name: cronmails - Run update-exim4.conf become: yes shell: "update-exim4.conf" + when: cronmails_conftmp_update.changed or cronmails_conffile_update.changed - name: cronmails - Enable and start exim4 become: yes service: diff --git a/tasks/telegraf.yml b/tasks/telegraf.yml index b90c552..e086d92 100644 --- a/tasks/telegraf.yml +++ b/tasks/telegraf.yml @@ -11,7 +11,7 @@ apt_key: url: https://repos.influxdata.com/influxdb.key state: present -- name: telegraf - Add Telegraf repo +- name: telegraf - Add telegraf repo become: yes apt_repository: repo: "deb https://repos.influxdata.com/debian {{ ansible_distribution_release }} stable"