/
/
/
Ansible role that provisions my storage server.
1---
2# Prerequisites for Storage Services
3
4# ==============================================================================
5# DOCKER DIRECTORY SETUP
6# ==============================================================================
7
8- name: Ensure docker directory exists
9 file:
10 path: "{{ storage_docker_dir }}"
11 state: directory
12 owner: "{{ storage_user }}"
13 group: "{{ storage_group }}"
14 mode: '0755'
15 tags: ['docker', 'directories']
16
17- name: Set docker directory permissions for group access
18 file:
19 path: "{{ storage_docker_dir }}"
20 state: directory
21 owner: "{{ storage_user }}"
22 group: "{{ storage_group }}"
23 mode: '2775' # Set group sticky bit
24 tags: ['docker', 'directories', 'permissions']
25
26# ==============================================================================
27# STORAGE DIRECTORIES SETUP
28# ==============================================================================
29
30- name: Create media directory structure
31 file:
32 path: "{{ item }}"
33 state: directory
34 owner: "{{ storage_user }}"
35 group: "{{ storage_group }}"
36 mode: '0755'
37 loop: "{{ media_directories }}"
38 tags: ['storage', 'directories']
39
40- name: Create docker configuration directories
41 file:
42 path: "{{ item }}"
43 state: directory
44 owner: "{{ storage_user }}"
45 group: "{{ storage_group }}"
46 mode: '0755'
47 loop: "{{ docker_config_directories }}"
48 tags: ['docker', 'directories', 'config']
49
50# ==============================================================================
51# SYSTEM PREREQUISITES
52# ==============================================================================
53
54- name: Install required packages
55 apt:
56 name:
57 - curl
58 - htpasswd
59 - python3-bcrypt
60 - python3-passlib
61 state: present
62 update_cache: true
63 tags: ['packages']
64
65- name: Ensure ansible user is in docker group
66 user:
67 name: "{{ storage_user }}"
68 groups: docker
69 append: true
70 tags: ['docker', 'users']
71
72# ==============================================================================
73# DOCKER COMPOSE VALIDATION
74# ==============================================================================
75
76- name: Verify Docker Compose availability
77 command: docker compose version
78 register: docker_compose_version
79 changed_when: false
80 tags: ['docker', 'validation']
81
82- name: Display Docker Compose version
83 debug:
84 msg: "Docker Compose available: {{ docker_compose_version.stdout }}"
85 tags: ['docker', 'validation']