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