kso512.mpd
mpd
Un Rôle Ansible pour installer l'application Music Player Daemon à partir des sources plutôt que via un gestionnaire de paquets. Certains gestionnaires de paquets peuvent ne pas inclure des fonctionnalités comme le support MP3, donc compiler à partir du code source peut être utile.
Ceci est une reconstruction complète du rôle ansible-install-mpd que j'ai créé et maintenu pendant des années, entreprise en raison de changements dans CI/CD et les conventions de nommage dans Ansible Galaxy.
Je ne recommande pas la configuration par défaut pour une connexion non protégée directement à Internet, car la configuration du serveur permet l'accès sans mot de passe. Au lieu de cela, je recommande à l'opérateur d'augmenter la sécurité en configurant une variable d'hôte ou de groupe qui remplace mpd_conf_src
par un fichier personnalisé en dehors du dépôt, comme indiqué dans la section Exemple de Playbook ci-dessous.
Toutes les tâches sont étiquetées avec mpd
.
Les distributions suivantes ont été testées automatiquement :
Matrice des Versions
Version/Rôle | Version MPD |
---|---|
1.0.19 | 0.23.15 |
1.0.18 | 0.23.14 |
1.0.16 - 1.0.17 | 0.23.13 |
1.0.14 - 1.0.15 | 0.23.12 |
1.0.13 | 0.23.11 |
Exigences
Si le serveur a un pare-feu activé, il peut nécessiter des modifications pour permettre les paquets entrants sur les ports TCP 6600/8000. Le rôle n'inclut pas de musique ou de playlists, vous devez donc les fournir vous-même. Consultez la section Variables de Rôle ci-dessous pour ces emplacements.
Variables de Rôle
Les valeurs par défaut indiquées ci-dessous devraient fonctionner "prêtes à l'emploi" et nécessitent une personnalisation seulement si elles ne répondent pas à vos besoins.
Nom | Description | Valeur par défaut |
---|---|---|
mpd_apt_prereqs | Liste des paquets APT à installer | (Voir NOTE A ci-dessous) |
mpd_audio_output | Dictionnaire contenant les définitions de sortie audio | (Voir NOTE B ci-dessous) |
mpd_bind_to_address | Adresse à lier à l'interface de contrôle ; exemples : "any" ou "localhost" | "any" |
mpd_comment | Commentaire pour l'utilisateur MPD | "Music Player Daemon" |
mpd_compile_creates | Chemin complet du fichier créé lors de la compilation de MPD | "{{ mpd_src }}/output/release/mpd" |
mpd_conf | Chemin complet du fichier de configuration MPD | "{{ mpd_home }}/mpd.conf" |
mpd_conf_mode | Paramètres de mode de fichier du fichier de configuration MPD | "0644" |
mpd_conf_src | Chemin relatif ou complet du fichier source de configuration MPD | mpd.conf.j2 |
mpd_configure_creates | Chemin complet du fichier créé lors de la configuration de la source de MPD | "{{ mpd_src }}/output/release/build.ninja" |
mpd_database_plugin | Type de plugin de base de données à utiliser ; voir Plugins de base de données pour les options. | "simple" |
mpd_database_path | Chemin complet du fichier de base de données de MPD | "{{ mpd_home }}/tag_cache" |
mpd_database_cache_directory | Chemin du répertoire de cache pour le stockage supplémentaire monté à l'exécution | "{{ mpd_home }}/cache" |
mpd_executable | Chemin complet de l'exécutable MPD | "/usr/local/bin/mpd" |
mpd_filename | Nom du fichier de l'archive MPD | "{{ mpd_shortname }}.tar.xz" |
mpd_group | Groupe de l'utilisateur qui possédera le processus du démon | "{{ mpd_user }}" |
mpd_home | Répertoire principal pour le fonctionnement de l'application | "/home/{{ mpd_user }}" |
mpd_log_file | Chemin complet du fichier journal MPD | "{{ mpd_home }}/log" |
mpd_metadata_to_use | Utilisez uniquement les tags spécifiés séparés par des virgules et ignorez les autres ; voir Tags pour une liste des tags supportés | "AlbumArtist,Artist,Album,Title,Track,Disc,Genre,Name" |
mpd_mode | Paramètres de mode de fichier des dossiers de source MPD, musique et playlist | "0755" |
mpd_music_directory | Dossier pour stocker la musique | "{{ mpd_home }}/music" |
mpd_neighbors | Liste des plugins voisins à activer | (Voir NOTE C ci-dessous) |
mpd_pid_file | Chemin complet du fichier PID de MPD | "{{ mpd_home }}/pid" |
mpd_pip_prereqs | Liste des paquets PIP à installer | "meson>0.56.0" |
mpd_playlist_directory | Dossier pour stocker les playlists | "{{ mpd_home }}/playlist" |
mpd_port | Port TCP à lier à l'interface de contrôle | "6600" |
mpd_ratings_file | Chemin complet du fichier de notes MPD | "{{ mpd_home }}/ratings.db" |
mpd_shortname | Nom court de l'archive MPD | "mpd-0.23.15" |
mpd_src | Répertoire pour décompresser le code source | "{{ mpd_src_base }}/{{ mpd_shortname }}" |
mpd_src_base | Répertoire pour placer l'archive de code source | "{{ mpd_home }}/src" |
mpd_state_file | Chemin complet du fichier d'état MPD | "{{ mpd_home }}/state" |
mpd_sticker_file | Chemin complet du fichier de stickers MPD | "{{ mpd_home }}/sticker.sql" |
mpd_systemd_service_dest | Chemin complet du fichier d'unité de service systemd MPD | "/etc/systemd/system/mpd.service" |
mpd_systemd_service_group | Groupe de l'utilisateur qui possédera le fichier d'unité systemd | "root" |
mpd_systemd_service_owner | Nom de l'utilisateur qui possédera le fichier d'unité systemd | "root" |
mpd_systemd_service_mode | Paramètres de mode de fichier du fichier d'unité systemd | "0644" |
mpd_systemd_service_src | Chemin relatif ou complet du fichier source d'unité systemd MPD | "systemd.mpd.service.j2" |
mpd_url | URL complète pour télécharger l'archive de code source | "{{ mpd_url_base }}/{{ mpd_filename }}" |
mpd_url_base | Base de l'URL pour télécharger l'archive de code source | "http://www.musicpd.org/download/mpd/0.23" |
mpd_user | Nom de l'utilisateur qui possédera le processus du démon | "mpd" |
NOTE A
mpd_apt_prereqs
- Liste des paquets APT à installer :
- meson
- g++
- libfmt-dev
- libpcre2-dev
- libmad0-dev
- libmpg123-dev
- libid3tag0-dev
- libflac-dev
- libvorbis-dev
- libopus-dev
- libogg-dev
- libadplug-dev
- libaudiofile-dev
- libsndfile1-dev
- libfaad-dev
- libfluidsynth-dev
- libgme-dev
- libmikmod-dev
- libmodplug-dev
- libmpcdec-dev
- libwavpack-dev
- libwildmidi-dev
- libsidplay2-dev
- libsidutils-dev
- libresid-builder-dev
- libavcodec-dev
- libavformat-dev
- libmp3lame-dev
- libtwolame-dev
- libshine-dev
- libsamplerate0-dev
- libsoxr-dev
- libbz2-dev
- libcdio-paranoia-dev
- libiso9660-dev
- libmms-dev
- libzzip-dev
- libcurl4-gnutls-dev
- libyajl-dev
- libexpat-dev
- libasound2-dev
- libao-dev
- libjack-jackd2-dev
- libopenal-dev
- libpulse-dev
- libshout3-dev
- libsndio-dev
- libmpdclient-dev
- libnfs-dev
- libupnp-dev
- libavahi-client-dev
- libsqlite3-dev
- libsystemd-dev
- libgtest-dev
- libboost-dev
- libicu-dev
- libchromaprint-dev
- libgcrypt20-dev
NOTE B
mpd_audio_output
- Dictionnaire contenant les définitions de sortie audio :
httpd:
type: httpd
name: Mon Flux HTTP
encoder: lame
port: 8000
bitrate: 128
format: "44100:16:2"
always_on: "yes"
tags: "yes"
NOTE C
mpd_neighbors
- Liste des plugins voisins à activer ; voir Configurer les Plugins Voisins pour plus d'informations.
- udisks
- upnp
Dépendances
Aucune définition pour le moment.
Exemple de Playbook
Configurer chaque serveur MPD avec un mpd.conf local personnalisé :
- hosts: serveurs-musique
roles:
- { role: kso512.mpd, mpd_conf_src: local/mpd.conf.j2 }
Licence
Licence Publique Générale GNU version 2
Informations sur l'Auteur
Ansible role to install Music Player Daemon from source
ansible-galaxy install kso512.mpd