Complete deploying Navidrome on media-stream server as a service
This commit is contained in:
parent
ab88f1691f
commit
97e7f8c782
105
ansible/deploy_music.yml
Normal file
105
ansible/deploy_music.yml
Normal file
@ -0,0 +1,105 @@
|
||||
---
|
||||
- name: Deploy Navidrome Music Streaming Server
|
||||
hosts: media
|
||||
become: true
|
||||
|
||||
tasks:
|
||||
- name: Enable EPEL 10 repository
|
||||
ansible.builtin.dnf:
|
||||
name: https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm
|
||||
state: present
|
||||
disable_gpg_check: true
|
||||
|
||||
- name: Install rclone and fuse3
|
||||
ansible.builtin.dnf:
|
||||
name:
|
||||
- rclone
|
||||
- fuse3
|
||||
state: present
|
||||
|
||||
- name: Create rclone config directory
|
||||
ansible.builtin.file:
|
||||
path: /root/.config/rclone
|
||||
state: directory
|
||||
mode: "0700"
|
||||
|
||||
- name: Copy rclone configuration
|
||||
ansible.builtin.copy:
|
||||
src: ./rclone.conf
|
||||
dest: /root/.config/rclone/rclone.conf
|
||||
mode: "0600"
|
||||
|
||||
- name: Create mount directory
|
||||
ansible.builtin.file:
|
||||
path: /mnt/gdrive
|
||||
state: directory
|
||||
mode: "0755"
|
||||
|
||||
- name: Allow SELinux to access FUSE mounts
|
||||
ansible.posix.seboolean:
|
||||
name: virt_use_fusefs
|
||||
state: true
|
||||
persistent: true
|
||||
|
||||
- name: Create rclone-mount systemd service
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/systemd/system/rclone-mount.service
|
||||
mode: "0644"
|
||||
content: |
|
||||
[Unit]
|
||||
Description=Rclone Google Drive mount
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/rclone mount gdrive: /mnt/gdrive \
|
||||
--config /root/.config/rclone/rclone.conf \
|
||||
--allow-other \
|
||||
--dir-cache-time 1000h \
|
||||
--vfs-cache-mode full \
|
||||
--vfs-cache-max-age 24h
|
||||
ExecStop=/usr/bin/fusermount3 -u /mnt/gdrive
|
||||
Restart=on-failure
|
||||
User=root
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
- name: Start and enable rclone-mount service
|
||||
ansible.builtin.systemd:
|
||||
name: rclone-mount
|
||||
state: started
|
||||
enabled: true
|
||||
daemon_reload: true
|
||||
|
||||
- name: Create navidrome data directory
|
||||
ansible.builtin.file:
|
||||
path: /var/lib/navidrome
|
||||
state: directory
|
||||
owner: "1000"
|
||||
group: "1000"
|
||||
mode: "0755"
|
||||
|
||||
- name: Run Navidrome container via Podman
|
||||
containers.podman.podman_container:
|
||||
name: navidrome
|
||||
image: docker.io/deluan/navidrome:latest
|
||||
state: started
|
||||
recreate: true
|
||||
restart_policy: always
|
||||
ports:
|
||||
- "4533:4533"
|
||||
volume:
|
||||
- /mnt/gdrive/Music:/music:ro,z
|
||||
- /var/lib/navidrome:/data:z
|
||||
env:
|
||||
ND_LOGLEVEL: info
|
||||
ND_SCANSCHEDULE: "@every 1h"
|
||||
|
||||
- name: Open port 4533 in firewall
|
||||
ansible.posix.firewalld:
|
||||
port: 4533/tcp
|
||||
state: enabled
|
||||
permanent: true
|
||||
immediate: true
|
||||
Loading…
Reference in New Issue
Block a user