49 lines
1.4 KiB
YAML
49 lines
1.4 KiB
YAML
---
|
|
# Playbook 06: Configure Caddy
|
|
# Setup reverse proxy and obtain SSL certificates
|
|
|
|
- name: Configure Caddy Reverse Proxy
|
|
hosts: all
|
|
become: yes
|
|
|
|
tasks:
|
|
- name: Validate Caddyfile syntax
|
|
command: docker exec caddy caddy validate --config /etc/caddy/Caddyfile
|
|
args:
|
|
chdir: "{{ deployment_dir }}"
|
|
register: caddy_validate
|
|
failed_when: caddy_validate.rc != 0
|
|
changed_when: false
|
|
|
|
- name: Reload Caddy configuration
|
|
command: docker exec caddy caddy reload --config /etc/caddy/Caddyfile
|
|
args:
|
|
chdir: "{{ deployment_dir }}"
|
|
|
|
- name: Wait for SSL certificates (may take 1-2 minutes)
|
|
pause:
|
|
seconds: 30
|
|
prompt: "Waiting for Let's Encrypt to issue certificates..."
|
|
|
|
- name: Test HTTPS endpoint for Nextcloud
|
|
uri:
|
|
url: "https://{{ subdomain_nextcloud }}.{{ domain }}/status.php"
|
|
validate_certs: yes
|
|
status_code: 200
|
|
register: https_test
|
|
until: https_test.status == 200
|
|
retries: 10
|
|
delay: 10
|
|
ignore_errors: yes
|
|
|
|
- name: Display Caddy status
|
|
debug:
|
|
msg: |
|
|
✓ Caddyfile validated
|
|
✓ Caddy reloaded
|
|
{% if https_test.status == 200 %}
|
|
✓ HTTPS working: https://{{ subdomain_nextcloud }}.{{ domain }}
|
|
{% else %}
|
|
⚠ HTTPS check failed - verify DNS and firewall
|
|
{% endif %}
|