/
/
/
Ansible role that deploys my connectivity device.
1---
2# Connectivity Services - Pull latest images and recreate containers
3#
4# Usage via update-services.yml:
5# All connectivity: ansible-playbook update-services.yml --limit connectivity_servers
6# Single service: ansible-playbook update-services.yml --limit connectivity_servers --tags wireguard
7
8- name: Update WireGuard
9 when: connectivity_wireguard_enabled | default(true)
10 tags: [wireguard, vpn]
11 block:
12 - name: "WireGuard - Pull and recreate"
13 community.docker.docker_compose_v2:
14 project_src: "{{ connectivity_docker_base_path }}/wireguard"
15 pull: always
16 state: present
17 recreate: auto
18 register: wireguard_update
19
20 - name: "WireGuard - Status"
21 debug:
22 msg: "WireGuard: {{ 'updated' if wireguard_update.changed else 'up to date' }}"
23
24- name: Update Nginx Proxy Manager
25 when: connectivity_npm_enabled | default(true)
26 tags: [nginx-proxy, proxy]
27 block:
28 - name: "NPM - Pull and recreate"
29 community.docker.docker_compose_v2:
30 project_src: "{{ connectivity_docker_base_path }}/reverse-proxy"
31 pull: always
32 state: present
33 recreate: auto
34 register: npm_update
35
36 - name: "NPM - Status"
37 debug:
38 msg: "NPM: {{ 'updated' if npm_update.changed else 'up to date' }}"
39
40- name: Update DNS Stack
41 when: connectivity_dns_stack_enabled | default(true)
42 tags: [pihole, unbound, dns]
43 block:
44 - name: "DNS Stack - Pull and recreate"
45 community.docker.docker_compose_v2:
46 project_src: "{{ connectivity_docker_base_path }}/pihole"
47 pull: always
48 state: present
49 recreate: auto
50 register: dns_update
51
52 - name: "DNS Stack - Status"
53 debug:
54 msg: "DNS Stack: {{ 'updated' if dns_update.changed else 'up to date' }}"
55
56- name: Update DDNS
57 when: connectivity_ddns_enabled | default(true)
58 tags: [ddns, ddclient]
59 block:
60 - name: "DDNS - Rebuild and recreate"
61 community.docker.docker_compose_v2:
62 project_src: "{{ connectivity_docker_base_path }}/ddns"
63 state: present
64 build: always
65 recreate: always
66 register: ddns_update
67
68 - name: "DDNS - Status"
69 debug:
70 msg: "DDNS: {{ 'updated' if ddns_update.changed else 'up to date' }}"
71
72- name: Prune unused Docker images
73 tags: [cleanup, prune]
74 community.docker.docker_prune:
75 images: true
76 images_filters:
77 dangling: "true"
78 register: prune_result
79
80- name: Report cleanup
81 tags: [cleanup, prune]
82 debug:
83 msg: "Pruned {{ prune_result.images | default([]) | length }} dangling image(s), reclaimed {{ prune_result.images_space_reclaimed | default(0) | human_readable }}"
84 when: prune_result.images | default([]) | length > 0
85