storage

Ansible role that provisions my storage server.

3.4 KBYML
main.yml
3.4 KB113 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