/
/
/
Ansible role that provisions my storage server.
1---
2# Storage Services - Prerequisites and System Setup
3
4- name: Install required packages for storage services (excluding Docker - handled by geerlingguy.docker)
5 package:
6 name:
7 - curl
8 - jq
9 - python3-docker
10 - python3-pip
11 - htop
12 - iotop
13 - iftop
14 state: present
15 become: yes
16 check_mode: no
17
18- name: Verify Docker is installed and running (installed by geerlingguy.docker role)
19 systemd:
20 name: docker
21 state: started
22 become: yes
23 check_mode: no
24
25- name: Create local configuration directories
26 file:
27 path: "{{ item }}"
28 state: directory
29 owner: "{{ storage_user }}"
30 group: "{{ storage_group }}"
31 mode: '0775'
32 loop: "{{ storage_config_directories }}"
33
34- name: Set group sticky bit on storage directories for permission inheritance
35 file:
36 path: "{{ item }}"
37 state: directory
38 mode: "g+s"
39 loop: "{{ storage_config_directories }}"
40
41- name: Create media directories
42 file:
43 path: "{{ item }}"
44 state: directory
45 owner: "{{ storage_user }}"
46 group: "{{ storage_group }}"
47 mode: '0775'
48 loop: "{{ media_directories }}"
49
50- name: Set group sticky bit on media directories for permission inheritance
51 file:
52 path: "{{ item }}"
53 state: directory
54 mode: "g+s"
55 loop: "{{ media_directories }}"
56
57- name: Check Docker daemon is running
58 command: docker info
59 register: docker_info
60 changed_when: false
61 failed_when: docker_info.rc != 0
62
63- name: Verify Docker Compose is working
64 command: docker compose version
65 register: compose_version
66 changed_when: false
67 failed_when: compose_version.rc != 0
68
69- name: Display storage setup information
70 debug:
71 msg: |
72 Storage Services Prerequisites:
73 - Docker Compose Version: {{ compose_version.stdout }}
74 - Docker Status: Running
75 - Storage User: {{ storage_user }} (UID: {{ storage_uid }})
76 - Storage Group: {{ storage_group }} (GID: {{ storage_gid }})
77 - Service Directory Structure: Each service in {{ storage_docker_dir }}/[service] format
78 - Total Config Directories: {{ storage_config_directories | length }}
79 - Media Base Path: {{ storage_base_path }}
80