kso512.mpd
mpd
これは、AnsibleのためのRoleで、Music Player Daemonアプリケーションをパッケージマネージャを使わずにソースからインストールするものです。いくつかのパッケージマネージャは、MP3サポートのような機能を含まない場合があるため、ソースコードからコンパイルすることで解決できることがあります。
これは、私が何年も作成・維持してきたansible-install-mpdロールの完全なリビルドで、CI/CDやAnsible Galaxyの名称規則の変更に伴い行われました。
インターネットへのパスワードなしの直接接続用のデフォルト設定は推奨しません。 代わりに、オペレーターは、リポジトリの外部からのカスタムファイルでmpd_conf_src
を上書きするホストまたはグループ変数を設定してセキュリティを強化することをお勧めします。詳細は下記のExample Playbookセクションを参照してください。
すべてのタスクには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の着信パケットを許可するように変更が必要になることがあります。このロールには音楽やプレイリストは含まれていないため、それらを用意する必要があります。Role Variablesセクションでそれらの場所を確認してください。
ロール変数
以下に示すデフォルト値は「箱から出してすぐに」機能しますが、ニーズを満たさない場合はカスタマイズが必要です。
名前 | 説明 | デフォルト値 |
---|---|---|
mpd_apt_prereqs | インストールするAPTパッケージのリスト | (下記のNOTE Aを参照) |
mpd_audio_output | 音声出力定義を含む辞書 | (下記のNOTE 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 | 使用するデータベースプラグインのタイプ; オプションについてはDatabase pluginsを参照 | "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 | 指定されたカンマ区切りのタグのみを使用し、他のタグを無視する; サポートされているタグのリストについてはTagsを参照 | "AlbumArtist,Artist,Album,Title,Track,Disc,Genre,Name" |
mpd_mode | MPDソース、音楽、プレイリストフォルダーのファイルモード設定 | "0755" |
mpd_music_directory | 音楽を保存するフォルダー | "{{ mpd_home }}/music" |
mpd_neighbors | 有効にする隣接プラグインのリスト | (下記のNOTE 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" |
NOTE 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
NOTE 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"
NOTE C
mpd_neighbors
- 有効にする隣接プラグインのリスト; 詳細についてはConfiguring Neighbor Pluginsを参照してください。
- udisks
- upnp
依存関係
まだ定義されていません。
例: Playbook
各MPDサーバーをカスタマイズされたローカルmpd.confで設定します:
- hosts: music-servers
roles:
- { role: kso512.mpd, mpd_conf_src: local/mpd.conf.j2 }
ライセンス
GNU General Public License バージョン 2