mirror of
https://github.com/Expand-sys/caddyconfigure
synced 2025-12-15 16:42:12 +11:00
70 lines
No EOL
2 KiB
YAML
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 |