kso512.ansible-install-mpd
ansible-install-mpd
这是一个用于从源代码安装 音乐播放器守护进程 应用的 Ansible 角色,而不是通过包管理器进行安装。某些包管理器可能不包含 MP3 支持等功能,因此从源代码编译可能会有所帮助。
该角色已经弃用,并被新的角色 kso512.mpd 替代。
我不推荐默认配置直接连接到互联网,因为服务器配置包括无密码访问。 我建议操作员通过配置主机或组变量,使用来自外部自定义文件的内容来覆盖 ansible_install_mpd_conf_src
来增强安全性。
已在以下发行版上测试:
需求
如果服务器启用了防火墙,可能需要修改以允许在 TCP 端口 6600/8000 上接收数据包。该角色不包含音乐或播放列表,因此你需要自己提供。有关这些位置的信息,请参见下面的 角色变量 部分。
角色变量
下方显示的默认值应可以“开箱即用”,只有在不满足需求的情况下才需要自定义。
名称 | 描述 | 默认值 |
---|---|---|
ansible_install_mpd_apt_prereqs | 要安装的 APT 包列表 | (见 注释 A below) |
ansible_install_mpd_audio_output | 包含音频输出定义的字典 | (见 注释 B below) |
ansible_install_mpd_bind_to_address | 控制接口绑定的地址;示例有 "any" 或 "localhost" | any |
ansible_install_mpd_conf | MPD 配置文件的全路径文件名 | {{ ansible_install_mpd_home }}/mpd.conf |
ansible_install_mpd_conf_src | MPD 配置文件源的相对或全路径文件名 | mpd.conf.j2 |
ansible_install_mpd_db_file | MPD 数据库文件的全路径文件名 | {{ ansible_install_mpd_home }}/database |
ansible_install_mpd_executable | MPD 可执行文件的全路径文件名 | /usr/local/bin/mpd |
ansible_install_mpd_filename | MPD 压缩包的完整名称 | {{ ansible_install_mpd_shortname }}.tar.gz |
ansible_install_mpd_gcc_version | 要安装的 Gnu C 编译器版本 | 8 |
ansible_install_mpd_group | 将拥有守护进程的用户组 | mpd |
ansible_install_mpd_home | 应用运行的主目录 | /home/mpd |
ansible_install_mpd_log_file | MPD 日志文件的全路径文件名 | {{ ansible_install_mpd_home }}/log |
ansible_install_mpd_music_directory | 存储音乐的文件夹 | {{ ansible_install_mpd_home }}/music |
ansible_install_mpd_pid_file | MPD PID 文件的全路径文件名 | {{ ansible_install_mpd_home }}/pid |
ansible_install_mpd_playlist_directory | 存储播放列表的文件夹 | {{ ansible_install_mpd_home }}/playlist |
ansible_install_mpd_port | 控制接口绑定的地址 | 6600 |
ansible_install_mpd_shortname | MPD 压缩包的短名称 | mpd-0.22.10 |
ansible_install_mpd_src | 解压源代码的目录 | {{ ansible_install_mpd_src_base }}/{{ ansible_install_mpd_shortname }} |
ansible_install_mpd_src_base | 存放源代码压缩包的目录 | {{ ansible_install_mpd_home }}/src |
ansible_install_mpd_state_file | MPD 状态文件的全路径文件名 | {{ ansible_install_mpd_home }}/state |
ansible_install_mpd_sticker_file | MPD 贴纸文件的全路径文件名 | {{ ansible_install_mpd_home }}/sticker.sql |
ansible_install_mpd_systemd_service_dest | MPD systemd 服务单元文件的全路径文件名 | /lib/systemd/system/mpd.service |
ansible_install_mpd_systemd_service_src | MPD systemd 服务单元文件源的相对或全路径文件名 | systemd.mpd.service.j2 |
ansible_install_mpd_systemd_socket_dest | MPD systemd 套接字单元文件的全路径文件名 | /lib/systemd/system/mpd.socket |
ansible_install_mpd_systemd_socket_src | MPD systemd 套接字单元文件源的相对或全路径文件名 | systemd.mpd.socket.j2 |
ansible_install_mpd_url_base | 下载源代码压缩包的 URL 基础 | http://www.musicpd.org/download/mpd/0.22 |
ansible_install_mpd_user | 将拥有守护进程的用户名称 | mpd |
注释 A
作为前置条件安装的 APT 包列表:
- cmake
- libadplug-dev
- libao-dev
- libasound2-dev
- libaudio-mpd-perl
- libaudiofile-dev
- libavahi-client-dev
- libavcodec-dev
- libavformat-dev
- libboost-dev
- libbz2-dev
- libcdio-paranoia-dev
- libchromaprint-dev
- libcppunit-dev
- libcurl4-gnutls-dev
- libexpat-dev
- libfaad-dev
- libflac-dev
- libfluidsynth-dev
- libgcrypt20-dev
- libgme-dev
- libgtest-dev
- libicu-dev
- libid3tag0-dev
- libiso9660-dev
- libjack-jackd2-dev
- libmad0-dev
- libmikmod-dev
- libmms-dev
- libmodplug-dev
- libmp3lame-dev
- libmpcdec-dev
- libmpdclient-dev
- libmpg123-dev
- libnfs-dev
- libogg-dev
- libopenal-dev
- libopus-dev
- libpcre3-dev
- libpulse-dev
- libresid-builder-dev
- libroar-dev
- libsamplerate0-dev
- libshine-dev
- libshout3-dev
- libsidplay2-dev
- libsidutils-dev
- libsmbclient
- libsmbclient-dev
- libsndfile1-dev
- libsndio-dev
- libsoxr-dev
- libsqlite3-dev
- libsystemd-dev
- libtwolame-dev
- libupnp-dev
- libvorbis-dev
- libwavpack-dev
- libwildmidi-dev
- libwrap0-dev
- libyajl-dev
- libzzip-dev
- ninja-build
- python3
- python3-pip
- unzip
- xmlto
注释 B
在 ansible_install_mpd_audio_output
字典中 HTTP 流输出的示例:
httpd:
type: httpd
name: My HTTP Stream
encoder: lame
port: 8000
bitrate: 128
format: "44100:16:2"
依赖关系
该角色不依赖于其他任何角色。
示例剧本
仅为本地访问配置每个 MPD 服务器和自定义 mpd.conf:
- hosts: servers
roles:
- { role: kso512.ansible-install-mpd, ansible_install_mpd_bind_to_address: 127.0.0.1, ansible_install_mpd_conf_src: local/mpd.conf.j2 }
许可证
作者信息
Chris Lindbergh @kso512