/
/
/
Ansible role that provisions my storage server.
1---
2# Storage Services - Music Assistant Server
3
4- name: Create Music Assistant configuration directory structure
5 file:
6 path: "{{ item }}"
7 state: directory
8 owner: "{{ storage_user }}"
9 group: "{{ storage_group }}"
10 mode: '0775'
11 loop:
12 - "{{ music_assistant_config_dir }}"
13 - "{{ music_assistant_data_dir }}"
14
15- name: Set group sticky bit on Music Assistant directories for permission inheritance
16 file:
17 path: "{{ item }}"
18 state: directory
19 mode: "g+s"
20 loop:
21 - "{{ music_assistant_config_dir }}"
22 - "{{ music_assistant_data_dir }}"
23
24- name: Deploy Music Assistant Docker Compose file
25 template:
26 src: music-assistant-compose.yml.j2
27 dest: "{{ music_assistant_config_dir }}/docker-compose.yml"
28 owner: "{{ storage_user }}"
29 group: "{{ storage_group }}"
30 mode: '0664'
31 notify: restart music-assistant
32
33- name: Check if Music Assistant directory exists
34 stat:
35 path: "{{ music_assistant_config_dir }}"
36 register: music_assistant_dir_stat
37 changed_when: false
38
39- name: Start Music Assistant services
40 community.docker.docker_compose_v2:
41 project_src: "{{ music_assistant_config_dir }}"
42 state: present
43 register: music_assistant_start_result
44 check_mode: no
45 when: music_assistant_dir_stat.stat.exists
46
47- name: Wait for Music Assistant to initialize
48 pause:
49 seconds: 15
50
51- name: Display Music Assistant deployment summary
52 debug:
53 msg: |
54 Music Assistant Deployment:
55 - Status: {{ 'Started' if music_assistant_start_result is changed else 'Already running' }}
56 - Network: host mode (all ports exposed directly)
57 - Configuration: {{ music_assistant_config_dir }}
58 - Data: {{ music_assistant_data_dir }}
59 - Music Library: {{ music_assistant_music_dir }}
60