kso512.mpd

mpd

Release GitHub issues GitHub repo size

made-with-bash made-with-Markdown GitHub

これは、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

著者情報

@kso512

プロジェクトについて

Ansible role to install Music Player Daemon from source

インストール
ansible-galaxy install kso512.mpd
ライセンス
gpl-2.0
ダウンロード
218
所有者