kso512.mpd

mpd

Release GitHub issues GitHub repo size

made-with-bash made-with-Markdown GitHub

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

@kso512

À propos du projet

Ansible role to install Music Player Daemon from source

Installer
ansible-galaxy install kso512.mpd
Licence
gpl-2.0
Téléchargements
218
Propriétaire