ansible-role-caddy/tasks/main.yml

74 lines
1.8 KiB
YAML
Raw Normal View History

2025-10-31 14:33:03 +02:00
- name: Create Caddy configuration directory
become: yes
2025-10-31 14:33:03 +02:00
ansible.builtin.file:
path: /etc/caddy
state: directory
owner: root
group: root
mode: '0755'
- name: Deploy Caddyfile
become: yes
2025-10-31 14:33:03 +02:00
ansible.builtin.template:
src: Caddyfile.j2
dest: "{{ caddy_config_path }}"
owner: root
group: root
mode: '0644'
- name: Ensure Caddy authorities directory exists
become: yes
ansible.builtin.file:
path: /var/lib/caddy/.local/share/caddy/pki/authorities/local
state: directory
owner: caddy
group: caddy
mode: '0700'
# Copy the pre-generated certs from files/certs folder to Caddy,
# so that you only need to import the root.crt once for all .local domains
- name: Deploy Caddy root certificates
become: yes
vars:
cert_list: "{{ lookup('fileglob', role_path + '/files/certs/*', wantlist=True) | map('basename') | list }}"
ansible.builtin.copy:
src: "certs/{{ item }}"
dest: "{{ caddy_authorities_path }}/{{ item }}"
owner: caddy
group: caddy
mode: '0600'
force: yes
loop: "{{ cert_list }}"
2025-10-31 14:33:03 +02:00
- name: Ensure Caddy root directory exists
become: yes
2025-10-31 14:33:03 +02:00
ansible.builtin.file:
path: "{{ caddy_root }}"
state: directory
owner: www-data
group: www-data
mode: '0755'
- name: Start and enable Caddy service
become: yes
2025-10-31 14:33:03 +02:00
ansible.builtin.service:
name: "{{ caddy_service_name }}"
state: started
enabled: true
- name: Restart Caddy
become: yes
ansible.builtin.service:
name: "{{ caddy_service_name }}"
state: restarted
# By default don't trust as its not usually needed
2025-10-31 14:33:03 +02:00
- name: Trust Caddy local CA
become: yes
2025-10-31 14:33:03 +02:00
copy:
src: /var/lib/caddy/.local/share/caddy/pki/authorities/local/root.crt
dest: /usr/local/share/ca-certificates/caddy-local.crt
remote_src: yes
notify: Update CA trust
when: caddy_trust_local_ca | default(false) | bool