kso512.mpd
mpd
Ein Ansible Rollenspiel, um die Anwendung Music Player Daemon aus dem Quellcode zu installieren, anstatt über einen Paketmanager. Einige Paketmanager unterstützen möglicherweise keine Funktionen wie MP3-Unterstützung, daher kann das Kompilieren aus dem Quellcode hilfreich sein.
Dies ist ein kompletter Neuaufbau des ansible-install-mpd Rollenspiels, das ich jahrelang erstellt und gewartet habe. Die Neubearbeitung wurde aufgrund von Änderungen in CI/CD und Namenskonventionen in Ansible Galaxy durchgeführt.
Ich empfehle nicht die Standardkonfiguration für eine ungeschützte Verbindung direkt zum Internet, da die Serverkonfiguration den Zugriff ohne Passwort einschließt. Stattdessen empfehle ich, die Sicherheit zu erhöhen, indem eine Host- oder Gruppenvariable konfiguriert wird, die mpd_conf_src
mit einer benutzerdefinierten Datei außerhalb des Repositories überschreibt, wie im Abschnitt Beispiel-Playbook weiter unten gezeigt.
Alle Aufgaben sind mit mpd
gekennzeichnet.
Die folgenden Distributionen wurden automatisch getestet:
Versionsmatrix
Rollenversion/Tag | MPD-Version |
---|---|
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 |
Anforderungen
Wenn der Server eine Firewall aktiviert hat, müssen möglicherweise Änderungen vorgenommen werden, um eingehende Pakete auf den TCP-Ports 6600/8000 zuzulassen. Die Rolle umfasst keine Musik oder Wiedergabelisten, daher müssen Sie diese bereitstellen. Siehe den Abschnitt Rollen-Variablen weiter unten für die entsprechenden Standorte.
Rollenvariablen
Die unten angezeigten Standardwerte sollten "out-of-the-box" funktionieren und müssen nur angepasst werden, wenn sie nicht Ihren Bedürfnissen entsprechen.
Name | Beschreibung | Standardwert |
---|---|---|
mpd_apt_prereqs | Liste der APT-Pakete zur Installation | (Siehe HINWEIS A unten) |
mpd_audio_output | Wörterbuch mit Audioausgabedefinitionen | (Siehe HINWEIS B unten) |
mpd_bind_to_address | Adresse, an die die Steueroberfläche gebunden werden soll; Beispiele sind "any" oder "localhost" | "any" |
mpd_comment | Kommentar für den MPD-Benutzer | "Music Player Daemon" |
mpd_compile_creates | Vollständiger Pfadname der Datei, die beim Kompilieren von MPD erstellt wird | "{{ mpd_src }}/output/release/mpd" |
mpd_conf | Vollständiger Pfadname der MPD-Konfigurationsdatei | "{{ mpd_home }}/mpd.conf" |
mpd_conf_mode | Dateimoduseinstellungen der MPD-Konfigurationsdatei | "0644" |
mpd_conf_src | Relativer oder vollständiger Pfadname der MPD-Konfigurationsdatei-Quelle | mpd.conf.j2 |
mpd_configure_creates | Vollständiger Pfadname der Datei, die beim Konfigurieren der MPD-Quelle erstellt wird | "{{ mpd_src }}/output/release/build.ninja" |
mpd_database_plugin | Art des zu verwendenden Datenbank-Plugins; siehe Datenbank-Plugins für Optionen. | "simple" |
mpd_database_path | Vollständiger Pfadname der MPD-Datenbankdatei | "{{ mpd_home }}/tag_cache" |
mpd_database_cache_directory | Der Pfad des Cache-Verzeichnisses für zusätzliche Speicher, die zur Laufzeit eingebunden sind | "{{ mpd_home }}/cache" |
mpd_executable | Vollständiger Pfadname der MPD-Ausführungsdatei | "/usr/local/bin/mpd" |
mpd_filename | Dateiname des MPD-Archivs | "{{ mpd_shortname }}.tar.xz" |
mpd_group | Gruppe des Benutzers, der den Daemon-Prozess besitzen wird | "{{ mpd_user }}" |
mpd_home | Hauptverzeichnis, in dem die Anwendung ausgeführt wird | "/home/{{ mpd_user }}" |
mpd_log_file | Vollständiger Pfadname der MPD-Protokolldatei | "{{ mpd_home }}/log" |
mpd_metadata_to_use | Nur die angegebenen, durch Kommas getrennten Tags verwenden und die anderen ignorieren; siehe Tags für eine Liste der unterstützten Tags | "AlbumArtist,Artist,Album,Title,Track,Disc,Genre,Name" |
mpd_mode | Dateimoduseinstellungen für den MPD-Quell-, Musik- und Wiedergabelistenordner | "0755" |
mpd_music_directory | Ordner zum Speichern der Musik | "{{ mpd_home }}/music" |
mpd_neighbors | Liste der zu aktivierenden Nachbar-Plugins | (Siehe HINWEIS C unten) |
mpd_pid_file | Vollständiger Pfadname der MPD-PID-Datei | "{{ mpd_home }}/pid" |
mpd_pip_prereqs | Liste der zu installierenden PIP-Pakete | "meson>0.56.0" |
mpd_playlist_directory | Ordner zum Speichern der Wiedergabelisten | "{{ mpd_home }}/playlist" |
mpd_port | TCP-Port, an den die Steueroberfläche gebunden wird | "6600" |
mpd_ratings_file | Vollständiger Pfadname der MPD-Bewertungsdatei | "{{ mpd_home }}/ratings.db" |
mpd_shortname | Kurzname des MPD-Archivs | "mpd-0.23.15" |
mpd_src | Verzeichnis zum Entpacken des Quellcodes | "{{ mpd_src_base }}/{{ mpd_shortname }}" |
mpd_src_base | Verzeichnis zum Platzieren des Quellcode-Archivs | "{{ mpd_home }}/src" |
mpd_state_file | Vollständiger Pfadname der MPD-Zustandsdatei | "{{ mpd_home }}/state" |
mpd_sticker_file | Vollständiger Pfadname der MPD-Aufkleberdatei | "{{ mpd_home }}/sticker.sql" |
mpd_systemd_service_dest | Vollständiger Pfadname der MPD-systemd-Dienstdatei | "/etc/systemd/system/mpd.service" |
mpd_systemd_service_group | Gruppe des Benutzers, der die systemd-Einheit besitzen wird | "root" |
mpd_systemd_service_owner | Name des Benutzers, der die systemd-Einheit besitzen wird | "root" |
mpd_systemd_service_mode | Dateimoduseinstellungen der systemd-Einheit | "0644" |
mpd_systemd_service_src | Relativer oder vollständiger Pfadname der MPD-systemd-Dienstdateiquelle | "systemd.mpd.service.j2" |
mpd_url | Vollständige URL zum Herunterladen des Quellcode-Archivs | "{{ mpd_url_base }}/{{ mpd_filename }}" |
mpd_url_base | Basis-URL zum Herunterladen des Quellcode-Archivs | "http://www.musicpd.org/download/mpd/0.23" |
mpd_user | Name des Benutzers, der den Daemon-Prozess besitzen wird | "mpd" |
HINWEIS A
mpd_apt_prereqs
- Liste der zu installierenden APT-Pakete:
- 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
HINWEIS B
mpd_audio_output
- Wörterbuch mit Audioausgabedefinitionen:
httpd:
type: httpd
name: Mein HTTP-Stream
encoder: lame
port: 8000
bitrate: 128
format: "44100:16:2"
always_on: "ja"
tags: "ja"
HINWEIS C
mpd_neighbors
- Liste der zu aktivierenden Nachbar-Plugins; siehe Konfiguration von Nachbar-Plugins für weitere Informationen.
- udisks
- upnp
Abhängigkeiten
Noch keine definiert.
Beispiel-Playbook
Konfigurieren Sie jeden MPD-Server mit einer angepassten lokalen mpd.conf:
- hosts: musik-server
roles:
- { role: kso512.mpd, mpd_conf_src: lokal/mpd.conf.j2 }
Lizenz
GNU General Public License Version 2
Autorinformationen
Ansible role to install Music Player Daemon from source
ansible-galaxy install kso512.mpd