kso512.mpd

mpd

Release GitHub issues GitHub repo size

hecho-con-bash hecho-con-Markdown GitHub

Un Rol de Ansible para instalar la aplicación Music Player Daemon desde el código fuente en lugar de usar un gestor de paquetes. Algunos gestores de paquetes pueden no incluir características como soporte para MP3, así que compilar desde el código fuente puede ser útil.

Esta es una reconstrucción completa del rol ansible-install-mpd que creé y mantuve durante años, realizado debido a cambios en CI/CD y convenciones de nombres en Ansible Galaxy.

No recomiendo la configuración predeterminada para conexiones no protegidas directamente a Internet, ya que la configuración del servidor incluye acceso sin contraseña. En su lugar, recomiendo que el operador aumente la seguridad configurando una variable de host o de grupo que anule mpd_conf_src con un archivo personalizado desde fuera del repositorio, como se muestra en la sección Ejemplo de Playbook más abajo.

Todas las tareas están etiquetadas con mpd.

Las siguientes distribuciones han sido probadas automáticamente:

Matriz de Versiones

Versión/Tag del Rol Versión de 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

Requerimientos

Si el servidor tiene un firewall habilitado, podría ser necesario modificarlo para permitir paquetes entrantes en los puertos TCP 6600/8000. El rol no incluye música ni listas de reproducción, así que necesitas proporcionar esos archivos. Consulta la sección Variables del Rol más abajo para saber dónde.

Variables del Rol

Los valores predeterminados mostrados a continuación deberían funcionar "listo para usar" y solo necesitan personalización si no satisfacen tus necesidades.

Nombre Descripción Valor Predeterminado
mpd_apt_prereqs Lista de paquetes APT para instalar (Ver NOTA A más abajo)
mpd_audio_output Diccionario con definiciones de salida de audio (Ver NOTA B más abajo)
mpd_bind_to_address Dirección a la que se vinculará la interfaz de control; ejemplos: "any" o "localhost" "any"
mpd_comment Comentario para el usuario de MPD "Music Player Daemon"
mpd_compile_creates Nombre completo del archivo creado al compilar MPD "{{ mpd_src }}/output/release/mpd"
mpd_conf Nombre completo del archivo de configuración de MPD "{{ mpd_home }}/mpd.conf"
mpd_conf_mode Configuración de modo del archivo de configuración de MPD "0644"
mpd_conf_src Ruta relativa o completa del archivo fuente de la configuración de MPD mpd.conf.j2
mpd_configure_creates Nombre completo del archivo creado al configurar la fuente de MPD "{{ mpd_src }}/output/release/build.ninja"
mpd_database_plugin Tipo de plugin de base de datos a usar; consultar Plugins de base de datos para opciones. "simple"
mpd_database_path Nombre completo del archivo de base de datos de MPD "{{ mpd_home }}/tag_cache"
mpd_database_cache_directory Ruta del directorio de caché para almacenes adicionales montados en tiempo de ejecución "{{ mpd_home }}/cache"
mpd_executable Nombre completo del ejecutable de MPD "/usr/local/bin/mpd"
mpd_filename Nombre del archivo del archivo de MPD "{{ mpd_shortname }}.tar.xz"
mpd_group Grupo del usuario que poseerá el proceso del daemon "{{ mpd_user }}"
mpd_home Directorio principal donde se ejecutará la aplicación "/home/{{ mpd_user }}"
mpd_log_file Nombre completo del archivo de registro de MPD "{{ mpd_home }}/log"
mpd_metadata_to_use Usar solo las etiquetas especificadas separadas por comas, e ignorar las demás; consultar Etiquetas para una lista de etiquetas soportadas "AlbumArtist,Artist,Album,Title,Track,Disc,Genre,Name"
mpd_mode Configuración de modo de las carpetas de fuente de MPD, música y listas de reproducción "0755"
mpd_music_directory Carpeta para almacenar música "{{ mpd_home }}/music"
mpd_neighbors Lista de plugins vecinos a habilitar (Ver NOTA C más abajo)
mpd_pid_file Nombre completo del archivo PID de MPD "{{ mpd_home }}/pid"
mpd_pip_prereqs Lista de paquetes PIP para instalar "meson>0.56.0"
mpd_playlist_directory Carpeta para almacenar listas de reproducción "{{ mpd_home }}/playlist"
mpd_port Puerto TCP al que se vinculará la interfaz de control "6600"
mpd_ratings_file Nombre completo del archivo de calificaciones de MPD "{{ mpd_home }}/ratings.db"
mpd_shortname Nombre corto del archivo de MPD "mpd-0.23.15"
mpd_src Directorio donde descomprimir el código fuente "{{ mpd_src_base }}/{{ mpd_shortname }}"
mpd_src_base Directorio donde se colocará el archivo del código fuente "{{ mpd_home }}/src"
mpd_state_file Nombre completo del archivo de estado de MPD "{{ mpd_home }}/state"
mpd_sticker_file Nombre completo del archivo de stickers de MPD "{{ mpd_home }}/sticker.sql"
mpd_systemd_service_dest Nombre completo del archivo de unidad de servicio systemd de MPD "/etc/systemd/system/mpd.service"
mpd_systemd_service_group Grupo del usuario que poseerá el archivo de unidad systemd "root"
mpd_systemd_service_owner Nombre del usuario que poseerá el archivo de unidad systemd "root"
mpd_systemd_service_mode Configuración de modo del archivo de unidad systemd "0644"
mpd_systemd_service_src Ruta relativa o completa del archivo fuente de unidad systemd de MPD "systemd.mpd.service.j2"
mpd_url URL completa para descargar el archivo del código fuente "{{ mpd_url_base }}/{{ mpd_filename }}"
mpd_url_base Base de la URL para descargar el archivo del código fuente "http://www.musicpd.org/download/mpd/0.23"
mpd_user Nombre del usuario que poseerá el proceso del daemon "mpd"

NOTA A

mpd_apt_prereqs - Lista de paquetes APT para instalar:

  • 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

NOTA B

mpd_audio_output - Diccionario que contiene definiciones de salida de audio:

httpd:
  type: httpd
  name: Mi Stream HTTP
  encoder: lame
  port: 8000
  bitrate: 128
  format: "44100:16:2"
  always_on: "yes"
  tags: "yes"

NOTA C

mpd_neighbors - Lista de plugins vecinos a habilitar; consulta Configuración de Plugins Vecinos para más información.

  • udisks
  • upnp

Dependencias

Aún no definidas.

Ejemplo de Playbook

Configura cada servidor MPD con un mpd.conf local personalizado:

- hosts: music-servers
  roles:
    - { role: kso512.mpd, mpd_conf_src: local/mpd.conf.j2 }

Licencia

Licencia Pública General GNU versión 2

Información del Autor

@kso512

Acerca del proyecto

Ansible role to install Music Player Daemon from source

Instalar
ansible-galaxy install kso512.mpd
Licencia
gpl-2.0
Descargas
218
Propietario