kso512.mpd
mpd
Rola Ansible do instalacji aplikacji Music Player Daemon z kodu źródłowego zamiast przez menedżera pakietów. Niektóre menedżery pakietów mogą nie zawierać funkcji, takich jak wsparcie dla MP3, więc kompilacja z kodu źródłowego może pomóc.
To jest całkowite przebudowanie roli ansible-install-mpd, którą stworzyłem i utrzymywałem przez lata, wykonane z powodu zmian w CI/CD i konwencjach nazewnictwa w Ansible Galaxy.
Nie polecam domyślnej konfiguracji dla niechronionego połączenia bezpośrednio z Internetem, ponieważ konfiguracja serwera pozwala na dostęp bez hasła. Zamiast tego, zalecam zwiększenie bezpieczeństwa przez skonfigurowanie zmiennej hosta lub grupy, która nadpisuje mpd_conf_src własnym plikiem spoza repozytorium, jak pokazano w sekcji Przykładowy Playbook poniżej.
Wszystkie zadania są oznaczone tagiem mpd.
Poniższe dystrybucje zostały przetestowane automatycznie:
Matryca wersji
| Wersja/Tag roli | Wersja 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 |
Wymagania
Jeśli serwer ma włączoną zaporę ogniową, może być konieczna jej modyfikacja, aby zezwolić na przychodzące pakiety na porty TCP 6600/8000. Rola nie zawiera muzyki ani list odtwarzania, więc musisz je dostarczyć. Zobacz sekcję Zmienne roli poniżej, aby uzyskać te lokalizacje.
Zmienne roli
Domyślne wartości pokazane poniżej powinny działać "od ręki" i potrzebują dostosowania tylko wtedy, gdy nie spełniają Twoich potrzeb.
| Nazwa | Opis | Wartość domyślna |
|---|---|---|
| mpd_apt_prereqs | Lista pakietów APT do zainstalowania | (Zobacz UWAGA A poniżej) |
| mpd_audio_output | Słownik zawierający definicje wyjścia audio | (Zobacz UWAGA B poniżej) |
| mpd_bind_to_address | Adres, do którego należy przypisać interfejs kontrolny; przykłady to "any" lub "localhost" | "any" |
| mpd_comment | Komentarz dla użytkownika MPD | "Music Player Daemon" |
| mpd_compile_creates | Pełna lokalizacja pliku utworzonego podczas kompilacji MPD | "{{ mpd_src }}/output/release/mpd" |
| mpd_conf | Pełna lokalizacja pliku konfiguracyjnego MPD | "{{ mpd_home }}/mpd.conf" |
| mpd_conf_mode | Ustawienia trybu pliku pliku konfiguracyjnego MPD | "0644" |
| mpd_conf_src | Względna lub pełna lokalizacja źródłowego pliku konfiguracyjnego MPD | mpd.conf.j2 |
| mpd_configure_creates | Pełna lokalizacja pliku utworzonego podczas konfigurowania źródła MPD | "{{ mpd_src }}/output/release/build.ninja" |
| mpd_database_plugin | Typ wtyczki bazy danych do użycia; zobacz Wtyczki bazy danych dla opcji. | "simple" |
| mpd_database_path | Pełna lokalizacja pliku bazy danych MPD | "{{ mpd_home }}/tag_cache" |
| mpd_database_cache_directory | Ścieżka katalogu pamięci podręcznej dla dodatkowych pamięci montowanych w czasie rzeczywistym | "{{ mpd_home }}/cache" |
| mpd_executable | Pełna lokalizacja pliku wykonywalnego MPD | "/usr/local/bin/mpd" |
| mpd_filename | Nazwa pliku archiwum MPD | "{{ mpd_shortname }}.tar.xz" |
| mpd_group | Grupa użytkownika, która będzie właścicielem procesu demona | "{{ mpd_user }}" |
| mpd_home | Główny katalog do uruchamiania aplikacji | "/home/{{ mpd_user }}" |
| mpd_log_file | Pełna lokalizacja pliku logów MPD | "{{ mpd_home }}/log" |
| mpd_metadata_to_use | Używaj tylko określonych tagów oddzielonych przecinkami, ignorując inne; zobacz Tagi dla listy obsługiwanych tagów | "AlbumArtist,Artist,Album,Title,Track,Disc,Genre,Name" |
| mpd_mode | Ustawienia trybu pliku folderów źródłowych MPD, muzyki i listy odtwarzania | "0755" |
| mpd_music_directory | Katalog do przechowywania muzyki | "{{ mpd_home }}/music" |
| mpd_neighbors | Lista sąsiednich wtyczek do włączenia | (Zobacz UWAGA C poniżej) |
| mpd_pid_file | Pełna lokalizacja pliku PID MPD | "{{ mpd_home }}/pid" |
| mpd_pip_prereqs | Lista pakietów PIP do zainstalowania | "meson>0.56.0" |
| mpd_playlist_directory | Katalog do przechowywania list odtwarzania | "{{ mpd_home }}/playlist" |
| mpd_port | Port TCP, do którego należy przypisać interfejs kontrolny | "6600" |
| mpd_ratings_file | Pełna lokalizacja pliku ocen MPD | "{{ mpd_home }}/ratings.db" |
| mpd_shortname | Krótka nazwa archiwum MPD | "mpd-0.23.15" |
| mpd_src | Katalog do rozpakowania kodu źródłowego | "{{ mpd_src_base }}/{{ mpd_shortname }}" |
| mpd_src_base | Katalog do umieszczenia archiwum kodu źródłowego | "{{ mpd_home }}/src" |
| mpd_state_file | Pełna lokalizacja pliku stanu MPD | "{{ mpd_home }}/state" |
| mpd_sticker_file | Pełna lokalizacja pliku naklejki MPD | "{{ mpd_home }}/sticker.sql" |
| mpd_systemd_service_dest | Pełna lokalizacja pliku jednostki usługi systemd MPD | "/etc/systemd/system/mpd.service" |
| mpd_systemd_service_group | Grupa użytkownika, która będzie właścicielem pliku jednostki systemd | "root" |
| mpd_systemd_service_owner | Nazwa użytkownika, który będzie właścicielem pliku jednostki systemd | "root" |
| mpd_systemd_service_mode | Ustawienia trybu pliku jednostki systemd | "0644" |
| mpd_systemd_service_src | Względna lub pełna lokalizacja źródłowego pliku jednostki usługi systemd MPD | "systemd.mpd.service.j2" |
| mpd_url | Pełny adres URL do pobrania archiwum kodu źródłowego | "{{ mpd_url_base }}/{{ mpd_filename }}" |
| mpd_url_base | Baza adresu URL do pobrania archiwum kodu źródłowego | "http://www.musicpd.org/download/mpd/0.23" |
| mpd_user | Nazwa użytkownika, który będzie właścicielem procesu demona | "mpd" |
UWAGA A
mpd_apt_prereqs - Lista pakietów APT do zainstalowania:
- 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
UWAGA B
mpd_audio_output - Słownik zawierający definicje wyjścia audio:
httpd:
type: httpd
name: Moje strumieniowe połączenie HTTP
encoder: lame
port: 8000
bitrate: 128
format: "44100:16:2"
always_on: "yes"
tags: "yes"
UWAGA C
mpd_neighbors - Lista wtyczek sąsiednich do włączenia; zobacz Konfigurowanie wtyczek sąsiednich dla więcej informacji.
- udisks
- upnp
Zależności
Na razie brak.
Przykładowy Playbook
Skonfiguruj każdy serwer MPD z dostosowanym lokalnym plikiem mpd.conf:
- hosts: music-servers
roles:
- { role: kso512.mpd, mpd_conf_src: local/mpd.conf.j2 }
Licencja
GNU General Public License wersja 2
Informacje o autorze
Ansible role to install Music Player Daemon from source
ansible-galaxy install kso512.mpd