storage
Ansible role that provisions my storage server.
3.4 KB•YML
main.yml
3.4 KB • 113 lines • yaml
1---
2# Storage Services Role - Main Tasks
3
4- name: Check if storage role is enabled
5 fail:
6 msg: "Storage role is disabled. Set storage_enabled: true to enable."
7 when: not storage_enabled
8 tags: always
9
10- name: Display storage role start message
11 debug:
12 msg: "Starting Storage Services deployment with {{ ansible_play_hosts | length }} host(s)"
13 tags: always
14
15# Prerequisites and system setup
16- name: Include prerequisites tasks
17 include_tasks: prerequisites.yml
18 tags:
19 - storage
20 - prerequisites
21 - setup
22
23# Docker network setup
24- name: Include docker network tasks
25 include_tasks: docker-network.yml
26 tags:
27 - storage
28 - docker
29 - network
30
31# Service deployments
32- name: Include Jellyfin deployment
33 include_tasks: jellyfin.yml
34 when: jellyfin_enabled
35 tags:
36 - storage
37 - jellyfin
38 - media
39
40- name: Include Arr Stack deployment
41 include_tasks: arr-stack.yml
42 when: arr_stack_enabled
43 tags:
44 - storage
45 - arr-stack
46 - automation
47
48- name: Include Calibre Stack deployment
49 include_tasks: calibre-stack.yml
50 when: calibre_enabled
51 tags:
52 - storage
53 - calibre
54 - books
55
56- name: Include Restic Backup Server deployment
57 include_tasks: restic-server.yml
58 when: restic_backup_server_enabled
59 tags:
60 - storage
61 - restic
62 - backup
63
64# Post-deployment validation
65- name: Include validation tasks
66 include_tasks: validation.yml
67 tags:
68 - storage
69 - validation
70 - health-check
71
72
73- name: Display storage deployment summary
74 debug:
75 msg: |
76 Storage Services Deployment Complete!
77
78 Services Status:
79 - Jellyfin (Media): {{ 'Enabled' if jellyfin_enabled else 'Disabled' }}
80 - Arr Stack (Automation): {{ 'Enabled' if arr_stack_enabled else 'Disabled' }}
81 - Calibre Stack (Books): {{ 'Enabled' if calibre_enabled else 'Disabled' }}
82 - Restic Backup: {{ 'Enabled' if restic_backup_server_enabled else 'Disabled' }}
83
84 Access Information:
85 {% if jellyfin_enabled %}
86 - Jellyfin: http://{{ ansible_default_ipv4.address }}:{{ jellyfin_host_port }}
87 {% endif %}
88 {% if arr_stack_enabled %}
89 - Sonarr (TV): http://{{ ansible_default_ipv4.address }}:{{ sonarr_host_port }}
90 - Radarr (Movies): http://{{ ansible_default_ipv4.address }}:{{ radarr_host_port }}
91 - Prowlarr (Indexers): http://{{ ansible_default_ipv4.address }}:{{ prowlarr_host_port }}
92 - LazyLibrarian (Books): http://{{ ansible_default_ipv4.address }}:{{ lazylibrarian_host_port }}
93 - Jellyseer (Requests): http://{{ ansible_default_ipv4.address }}:{{ jellyseer_host_port }}
94 - Flaresolverr (Cloudflare): http://{{ ansible_default_ipv4.address }}:{{ flaresolverr_host_port }}
95 {% endif %}
96 {% if calibre_enabled %}
97 - Calibre Server: http://{{ ansible_default_ipv4.address }}:{{ calibre_server_host_port }}
98 - Calibre-Web: http://{{ ansible_default_ipv4.address }}:{{ calibre_web_host_port }}
99 {% endif %}
100 {% if restic_backup_server_enabled %}
101 - Restic Backup: http://{{ ansible_default_ipv4.address }}:{{ restic_backup_host_port }}
102 {% endif %}
103
104 Management Scripts: /usr/local/bin/storage-*
105
106 Service Directories:
107 - Jellyfin: {{ jellyfin_data_dir }}
108 - Arr Stack: {{ arr_config_dir }}
109 - Calibre: {{ calibre_config_dir }}
110 - Restic: {{ restic_backup_config_dir }}
111
112 Media Paths: {{ storage_base_path }}
113 tags: always