Feat: add mpd role and enable it to nas
This commit is contained in:
parent
db8a7e758e
commit
5ad74e8f9d
5
home.yml
5
home.yml
@ -36,10 +36,9 @@
|
|||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
- role: pihole
|
- role: mpd
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- mpd
|
||||||
- pihole
|
|
||||||
|
|
||||||
- role: minidlna
|
- role: minidlna
|
||||||
tags:
|
tags:
|
||||||
|
29
roles/mpd/.travis.yml
Normal file
29
roles/mpd/.travis.yml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
language: python
|
||||||
|
python: "2.7"
|
||||||
|
|
||||||
|
# Use the new container infrastructure
|
||||||
|
sudo: false
|
||||||
|
|
||||||
|
# Install ansible
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- python-pip
|
||||||
|
|
||||||
|
install:
|
||||||
|
# Install ansible
|
||||||
|
- pip install ansible
|
||||||
|
|
||||||
|
# Check ansible version
|
||||||
|
- ansible --version
|
||||||
|
|
||||||
|
# Create ansible.cfg with correct roles_path
|
||||||
|
- printf '[defaults]\nroles_path=../' >ansible.cfg
|
||||||
|
|
||||||
|
script:
|
||||||
|
# Basic role syntax check
|
||||||
|
- ansible-playbook tests/test.yml -i tests/inventory --syntax-check
|
||||||
|
|
||||||
|
notifications:
|
||||||
|
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
33
roles/mpd/.yamllint
Normal file
33
roles/mpd/.yamllint
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
# Based on ansible-lint config
|
||||||
|
extends: default
|
||||||
|
|
||||||
|
rules:
|
||||||
|
braces:
|
||||||
|
max-spaces-inside: 1
|
||||||
|
level: error
|
||||||
|
brackets:
|
||||||
|
max-spaces-inside: 1
|
||||||
|
level: error
|
||||||
|
colons:
|
||||||
|
max-spaces-after: -1
|
||||||
|
level: error
|
||||||
|
commas:
|
||||||
|
max-spaces-after: -1
|
||||||
|
level: error
|
||||||
|
comments: disable
|
||||||
|
comments-indentation: disable
|
||||||
|
document-start: disable
|
||||||
|
empty-lines:
|
||||||
|
max: 3
|
||||||
|
level: error
|
||||||
|
hyphens:
|
||||||
|
level: error
|
||||||
|
indentation: disable
|
||||||
|
key-duplicates: enable
|
||||||
|
line-length: disable
|
||||||
|
new-line-at-end-of-file: disable
|
||||||
|
new-lines:
|
||||||
|
type: unix
|
||||||
|
trailing-spaces: disable
|
||||||
|
truthy: disable
|
22
roles/mpd/defaults/main.yml
Normal file
22
roles/mpd/defaults/main.yml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
# defaults file for mpd
|
||||||
|
mpd_name: Music Player Daemon
|
||||||
|
mpd_restore_paused: true
|
||||||
|
mpd_auto_update: true
|
||||||
|
mpd_follow_inside_symlinks: true
|
||||||
|
mpd_follow_outside_symlinks: false
|
||||||
|
|
||||||
|
mpd_music_directory: /var/lib/mpd/music
|
||||||
|
mpd_playlist_directory: /var/lib/mpd/playlists
|
||||||
|
|
||||||
|
mpd_db_file: /var/lib/mpd/mpd.db
|
||||||
|
mpd_sticker_file: /var/lib/mpd/sticker.db
|
||||||
|
mpd_state_file: /var/lib/mpd/mpdstate
|
||||||
|
|
||||||
|
mpd_user: mpd
|
||||||
|
mpd_bind_to_address: any
|
||||||
|
|
||||||
|
mpd_outputs:
|
||||||
|
- name: "Null Output"
|
||||||
|
type: "null"
|
||||||
|
|
6
roles/mpd/handlers/main.yml
Normal file
6
roles/mpd/handlers/main.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
# handlers file for mpd
|
||||||
|
- name: restart mpd
|
||||||
|
service:
|
||||||
|
name: mpd
|
||||||
|
state: restarted
|
23
roles/mpd/molecule/default/INSTALL.rst
Normal file
23
roles/mpd/molecule/default/INSTALL.rst
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
*********************************
|
||||||
|
Vagrant driver installation guide
|
||||||
|
*********************************
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
============
|
||||||
|
|
||||||
|
* Vagrant
|
||||||
|
* Virtualbox, Parallels, VMware Fusion, VMware Workstation or VMware Desktop
|
||||||
|
|
||||||
|
Install
|
||||||
|
=======
|
||||||
|
|
||||||
|
Please refer to the `Virtual environment`_ documentation for installation best
|
||||||
|
practices. If not using a virtual environment, please consider passing the
|
||||||
|
widely recommended `'--user' flag`_ when invoking ``pip``.
|
||||||
|
|
||||||
|
.. _Virtual environment: https://virtualenv.pypa.io/en/latest/
|
||||||
|
.. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ pip install 'molecule_vagrant'
|
7
roles/mpd/molecule/default/converge.yml
Normal file
7
roles/mpd/molecule/default/converge.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
- name: Converge
|
||||||
|
hosts: all
|
||||||
|
tasks:
|
||||||
|
- name: "Include mpd"
|
||||||
|
include_role:
|
||||||
|
name: "mpd"
|
11
roles/mpd/molecule/default/molecule.yml
Normal file
11
roles/mpd/molecule/default/molecule.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
dependency:
|
||||||
|
name: galaxy
|
||||||
|
driver:
|
||||||
|
name: vagrant
|
||||||
|
platforms:
|
||||||
|
- name: instance
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
verifier:
|
||||||
|
name: ansible
|
10
roles/mpd/molecule/default/verify.yml
Normal file
10
roles/mpd/molecule/default/verify.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
# This is an example playbook to execute Ansible tests.
|
||||||
|
|
||||||
|
- name: Verify
|
||||||
|
hosts: all
|
||||||
|
gather_facts: false
|
||||||
|
tasks:
|
||||||
|
- name: Example assertion
|
||||||
|
assert:
|
||||||
|
that: true
|
7
roles/mpd/tasks/debian.yml
Normal file
7
roles/mpd/tasks/debian.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
- name: Debian - Install mpd
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- mpd
|
||||||
|
- mpc
|
||||||
|
state: present
|
13
roles/mpd/tasks/main.yml
Normal file
13
roles/mpd/tasks/main.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
# tasks file for mpd
|
||||||
|
- name: Install os-specific packages
|
||||||
|
include_tasks: "{{ ansible_os_family | lower }}.yml"
|
||||||
|
|
||||||
|
- name: Copy mpd.conf
|
||||||
|
template:
|
||||||
|
src: mpd.conf.j2
|
||||||
|
dest: /etc/mpd.conf
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
notify: restart mpd
|
32
roles/mpd/templates/mpd.conf.j2
Normal file
32
roles/mpd/templates/mpd.conf.j2
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
music_directory "{{ mpd_music_directory }}"
|
||||||
|
playlist_directory "{{ mpd_playlist_directory }}"
|
||||||
|
|
||||||
|
db_file "{{ mpd_db_file }}"
|
||||||
|
sticker_file "{{ mpd_sticker_file }}"
|
||||||
|
state_file "{{ mpd_state_file }}"
|
||||||
|
|
||||||
|
user "{{ mpd_user }}"
|
||||||
|
bind_to_address "{{ mpd_bind_to_address }}"
|
||||||
|
log_file "syslog"
|
||||||
|
|
||||||
|
restore_paused "{% if mpd_restore_paused %}yes{% else %}no{% endif %}"
|
||||||
|
auto_update "{% if mpd_auto_update %}yes{% else %}no{% endif %}"
|
||||||
|
follow_inside_symlinks "{% if mpd_follow_inside_symlinks %}yes{% else %}no{% endif %}"
|
||||||
|
follow_outside_symlinks "{% if mpd_follow_outside_symlinks %}yes{% else %}no{% endif %}"
|
||||||
|
|
||||||
|
zeroconf_enabled "yes"
|
||||||
|
zeroconf_name "{{ mpd_name }}"
|
||||||
|
|
||||||
|
input {
|
||||||
|
plugin "curl"
|
||||||
|
verify_peer "yes"
|
||||||
|
verify_host "yes"
|
||||||
|
}
|
||||||
|
|
||||||
|
{% for output in mpd_outputs %}
|
||||||
|
audio_output {
|
||||||
|
{% for k, v in output.items() %}
|
||||||
|
{{ k }} "{{ v }}"
|
||||||
|
{% endfor %}
|
||||||
|
}
|
||||||
|
{% endfor %}
|
2
roles/mpd/vars/main.yml
Normal file
2
roles/mpd/vars/main.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
# vars file for mpd
|
11
vars/nas.yml
11
vars/nas.yml
@ -21,3 +21,14 @@ upss:
|
|||||||
# minidlna
|
# minidlna
|
||||||
minidlna_friendly_name: "Nas dlna"
|
minidlna_friendly_name: "Nas dlna"
|
||||||
minidlna_media_dir: /mnt/DocNas/Commun/musique/
|
minidlna_media_dir: /mnt/DocNas/Commun/musique/
|
||||||
|
|
||||||
|
# Mpd
|
||||||
|
mpd_name: Mpd NAS
|
||||||
|
mpd_music_directory: /mnt/DocNas/Commun/musique
|
||||||
|
mpd_outputs:
|
||||||
|
- type: "httpd"
|
||||||
|
name: "Nas mpd stream"
|
||||||
|
encoder: "vorbis" # optional, vorbis or lame
|
||||||
|
port: "8000"
|
||||||
|
bitrate: "128" # do not define if quality is defined
|
||||||
|
format: "44100:16:1"
|
||||||
|
Loading…
Reference in New Issue
Block a user