mpd
mpd
Это рельс для установки приложения Music Player Daemon из исходников вместо использования менеджера пакетов. Некоторые менеджеры пакетов могут не включать такие функции, как поддержка MP3, поэтому сборка из исходного кода может помочь.
Это полная переработка ранее созданного и поддерживаемого мной рельса ansible-install-mpd, выполненная из-за изменений в CI/CD и наименованиях в Ansible Galaxy.
Я не рекомендую использовать стандартную конфигурацию для незащищенных соединений напрямую с интернетом, так как конфигурация сервера позволяет доступ без пароля. Вместо этого я рекомендую оператору повысить безопасность, настроив переменную хоста или группы, которая заменяет mpd_conf_src
на пользовательский файл за пределами репозитория, как показано в разделе Пример плейбука ниже.
Все задачи отмечены тегом mpd
.
Следующие дистрибутивы были протестированы автоматически:
Матрица версий
Версия рельса/Тег | Версия 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 |
Требования
Если сервер имеет включенный файервол, его возможно надо будет изменить, чтобы разрешить входящие пакеты на TCP портах 6600/8000. Рельс не включает музыку или плейлисты, так что вам нужно будет предоставить их. См. раздел Переменные рельса ниже для этих мест.
Переменные рельса
Значения по умолчанию, показанные ниже, должны работать "из коробки" и требуют настройки только в том случае, если они не соответствуют вашим потребностям.
Название | Описание | Значение по умолчанию |
---|---|---|
mpd_apt_prereqs | Список пакетов APT для установки | (См. ПРИМЕЧАНИЕ A ниже) |
mpd_audio_output | Словарь, содержащий определения аудиовыхода | (См. ПРИМЕЧАНИЕ B ниже) |
mpd_bind_to_address | Адрес для привязки интерфейса управления; примеры "any" или "localhost" | "any" |
mpd_comment | Комментарий для пользователя MPD | "Music Player Daemon" |
mpd_compile_creates | Полное имя файла, создаваемого при компиляции MPD | "{{ mpd_src }}/output/release/mpd" |
mpd_conf | Полное имя файла конфигурации MPD | "{{ mpd_home }}/mpd.conf" |
mpd_conf_mode | Настройки режима файла конфигурации MPD | "0644" |
mpd_conf_src | Относительное или полное имя файла источника конфигурации MPD | mpd.conf.j2 |
mpd_configure_creates | Полное имя файла, создаваемого при настройке источника MPD | "{{ mpd_src }}/output/release/build.ninja" |
mpd_database_plugin | Тип используемого плагина базы данных; см. Плагины базы данных для опций. | "simple" |
mpd_database_path | Полное имя файла базы данных MPD | "{{ mpd_home }}/tag_cache" |
mpd_database_cache_directory | Путь к каталогу кеша для дополнительных хранилищ, смонтированных во время выполнения | "{{ mpd_home }}/cache" |
mpd_executable | Полное имя исполняемого файла MPD | "/usr/local/bin/mpd" |
mpd_filename | Имя файла архива MPD | "{{ mpd_shortname }}.tar.xz" |
mpd_group | Группа пользователя, которая будет владеть процессом демона | "{{ mpd_user }}" |
mpd_home | Основной каталог для запуска приложения | "/home/{{ mpd_user }}" |
mpd_log_file | Полное имя файла журнала MPD | "{{ mpd_home }}/log" |
mpd_metadata_to_use | Используйте только указанные теги через запятую и игнорируйте остальные; см. Теги для списка поддерживаемых тегов | "AlbumArtist,Artist,Album,Title,Track,Disc,Genre,Name" |
mpd_mode | Настройки режима файла источника MPD, музыки и папок плейлистов | "0755" |
mpd_music_directory | Папка для хранения музыки | "{{ mpd_home }}/music" |
mpd_neighbors | Список плагинов-соседей для включения | (См. ПРИМЕЧАНИЕ C ниже) |
mpd_pid_file | Полное имя файла PID MPD | "{{ mpd_home }}/pid" |
mpd_pip_prereqs | Список пакетов PIP для установки | "meson>0.56.0" |
mpd_playlist_directory | Папка для хранения плейлистов | "{{ mpd_home }}/playlist" |
mpd_port | TCP порт для привязки интерфейса управления | "6600" |
mpd_ratings_file | Полное имя файла рейтингов MPD | "{{ mpd_home }}/ratings.db" |
mpd_shortname | Короткое имя архива MPD | "mpd-0.23.15" |
mpd_src | Директория для разархивирования исходного кода | "{{ mpd_src_base }}/{{ mpd_shortname }}" |
mpd_src_base | Директория для размещения архива исходного кода | "{{ mpd_home }}/src" |
mpd_state_file | Полное имя файла состояния MPD | "{{ mpd_home }}/state" |
mpd_sticker_file | Полное имя файла стикера MPD | "{{ mpd_home }}/sticker.sql" |
mpd_systemd_service_dest | Полное имя файла юнита сервиса MPD systemd | "/etc/systemd/system/mpd.service" |
mpd_systemd_service_group | Группа пользователя, который будет владеть файлом юнита systemd | "root" |
mpd_systemd_service_owner | Имя пользователя, который будет владеть файлом юнита systemd | "root" |
mpd_systemd_service_mode | Настройки режима файла юнита systemd | "0644" |
mpd_systemd_service_src | Относительное или полное имя файла источника юнита сервиса MPD systemd | "systemd.mpd.service.j2" |
mpd_url | Полный URL для скачивания архива исходного кода | "{{ mpd_url_base }}/{{ mpd_filename }}" |
mpd_url_base | Базовый URL для скачивания архива исходного кода | "http://www.musicpd.org/download/mpd/0.23" |
mpd_user | Имя пользователя, который будет владеть процессом демона | "mpd" |
ПРИМЕЧАНИЕ A
mpd_apt_prereqs
- Список пакетов APT для установки:
- 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
ПРИМЕЧАНИЕ B
mpd_audio_output
- Словарь, содержащий определения аудиовыхода:
httpd:
type: httpd
name: My HTTP Stream
encoder: lame
port: 8000
bitrate: 128
format: "44100:16:2"
always_on: "yes"
tags: "yes"
ПРИМЕЧАНИЕ C
mpd_neighbors
- Список плагинов-соседей для включения; ознакомьтесь с разделом Настройка плагинов-соседей для получения дополнительной информации.
- udisks
- upnp
Зависимости
Пока не определены.
Пример плейбука
Настройка каждого сервера MPD с помощью пользовательского локального mpd.conf:
- hosts: music-servers
roles:
- { role: kso512.mpd, mpd_conf_src: local/mpd.conf.j2 }
Лицензия
GNU General Public License версия 2
Информация об авторе
Ansible role to install Music Player Daemon from source
ansible-galaxy install kso512/mpd