kso512.mpd
mpd
一个用于安装 音乐播放器守护进程 应用程序的 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 }