caddyconfigure/main.ansible.yml

70 lines
No EOL
2 KiB
YAML

---
- name: Configure caddy
hosts: hostnode
vars:
become: false
pre_tasks:
- name: Load variables
ansible.builtin.include_vars: '{{ item }}'
with_first_found:
- "vars/default.yml"
tasks:
- name: set up reverse proxy
include_tasks: caddyinstall.ansible.yml
when: INSTALL_CADDY
- name: copy existing Caddyfile to make sure there is a backup
ansible.builtin.copy:
src: "{{ CADDYFILE_DEST }}"
remote_src: true
dest: "{{ CADDYFILE_DEST }}.bak"
owner: root
group: root
mode: '0644'
- name: Insert/Update configuration using a local file and validate it
ansible.builtin.blockinfile:
block: "{{ lookup('ansible.builtin.file', './caddyfile/Caddyfile') }}"
path: "{{ CADDYFILE_DEST }}"
insertafter: "### Caddy configure setup stuffs ###"
marker: "### {mark} user configured section ###"
- name: restart Caddy
ansible.builtin.systemd_service:
name: caddy
state: restarted
daemon_reload: true
- name: Pause play until a URL is reachable from this host
ansible.builtin.uri:
url: "https://localhost"
follow_redirects: none
method: GET
validate_certs: false
register: _result
until: _result.status == 200
retries: 6 # 6 * 5 seconds = 30sec
delay: 5 # Every 5 seconds
ignore_errors: true
- name: if _result.status != 200 revert file
ansible.builtin.copy:
src: /Caddyfile.bak
remote_src: true
dest: /Caddyfile
owner: root
group: root
mode: '0644'
when: _result.status != 200
- name: restart Caddy
ansible.builtin.systemd_service:
name: caddy
state: restarted
daemon_reload: true
when: _result.status != 200
- name: if _result.status != 200, fail
ansible.builtin.fail:
msg: you messed up your config doofus
when: _result.status != 200