storage
Ansible role that provisions my storage server.
3.7 KB•YML
main.yml
3.7 KB • 145 lines • yaml
1---
2# Storage Services Handlers
3
4# ==============================================================================
5# DOCKER SERVICE HANDLERS
6# ==============================================================================
7
8- name: Check if jellyfin directory exists
9 stat:
10 path: "{{ jellyfin_data_dir }}"
11 register: jellyfin_dir_exists
12 changed_when: false
13 check_mode: no
14 when: jellyfin_data_dir is defined
15 tags: ['jellyfin', 'restart']
16
17- name: restart jellyfin
18 community.docker.docker_compose_v2:
19 project_src: "{{ jellyfin_data_dir }}"
20 state: present
21 recreate: always
22 check_mode: no
23 when:
24 - jellyfin_dir_exists is defined
25 - jellyfin_dir_exists.stat.exists
26 tags: ['jellyfin', 'restart']
27
28- name: Check if arr-stack directory exists
29 stat:
30 path: "{{ arr_config_dir }}"
31 register: arr_dir_exists
32 changed_when: false
33 check_mode: no
34 when: arr_config_dir is defined
35 tags: ['arr-stack', 'restart']
36
37- name: restart arr-stack
38 community.docker.docker_compose_v2:
39 project_src: "{{ arr_config_dir }}"
40 state: present
41 recreate: always
42 check_mode: no
43 when:
44 - arr_dir_exists is defined
45 - arr_dir_exists.stat.exists
46 tags: ['arr-stack', 'restart']
47
48- name: Check if calibre-stack directory exists
49 stat:
50 path: "{{ calibre_config_dir }}"
51 register: calibre_dir_exists
52 changed_when: false
53 check_mode: no
54 when: calibre_config_dir is defined
55 tags: ['calibre', 'restart']
56
57- name: restart calibre-stack
58 community.docker.docker_compose_v2:
59 project_src: "{{ calibre_config_dir }}"
60 state: present
61 recreate: always
62 check_mode: no
63 when:
64 - calibre_dir_exists is defined
65 - calibre_dir_exists.stat.exists
66 tags: ['calibre', 'restart']
67
68- name: Check if restic-server directory exists
69 stat:
70 path: "{{ restic_backup_config_dir }}"
71 register: restic_dir_exists
72 changed_when: false
73 check_mode: no
74 when: restic_backup_config_dir is defined
75 tags: ['restic', 'backup', 'restart']
76
77- name: restart restic-server
78 community.docker.docker_compose_v2:
79 project_src: "{{ restic_backup_config_dir }}"
80 state: present
81 recreate: always
82 check_mode: no
83 when:
84 - restic_dir_exists is defined
85 - restic_dir_exists.stat.exists
86 tags: ['restic', 'backup', 'restart']
87
88# ==============================================================================
89# SYSTEM HANDLERS
90# ==============================================================================
91
92- name: reload systemd
93 systemd:
94 daemon_reload: true
95 check_mode: no
96
97- name: create docker network
98 community.docker.docker_network:
99 name: "{{ storage_docker_network }}"
100 state: present
101 check_mode: no
102 tags: ['docker', 'network']
103
104# ==============================================================================
105# CONFIGURATION HANDLERS
106# ==============================================================================
107
108- name: update permissions
109 file:
110 path: "{{ item }}"
111 owner: "{{ storage_user }}"
112 group: "{{ storage_group }}"
113 recurse: true
114 loop:
115 - "{{ storage_docker_dir }}"
116 - "{{ storage_base_path }}"
117 check_mode: no
118 tags: ['permissions']
119
120- name: Check if docker compose directories exist
121 stat:
122 path: "{{ item }}"
123 register: compose_dirs
124 changed_when: false
125 loop:
126 - "{{ jellyfin_data_dir }}"
127 - "{{ arr_config_dir }}"
128 - "{{ calibre_config_dir }}"
129 - "{{ restic_backup_config_dir }}"
130 when:
131 - item is defined
132 - item != ""
133 tags: ['validation']
134
135- name: validate docker compose
136 command: docker compose config
137 args:
138 chdir: "{{ item.item }}"
139 loop: "{{ compose_dirs.results }}"
140 when:
141 - item.stat is defined
142 - item.stat.exists
143 changed_when: false
144 check_mode: no
145 tags: ['validation']