kso512.mpd

mpd

发布 GitHub 问题 GitHub 仓库大小

基于 Bash 制作 基于 Markdown 制作 GitHub

一个用于安装 音乐播放器守护进程 应用程序的 Ansible 角色,通过源代码安装,而不是通过包管理器。因为一些包管理器可能不包含如 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 MPD PID 文件的完整路径 "{{ 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: 我的 HTTP 流
  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 通用公共许可证第 2 版

作者信息

@kso512

关于项目

Ansible role to install Music Player Daemon from source

安装
ansible-galaxy install kso512.mpd
许可证
gpl-2.0
下载
218
拥有者