cleanup and test basic functionality

This commit is contained in:
Alexander Grothe
2017-02-22 15:27:48 +01:00
parent efac4618fa
commit 9fe824e452
12 changed files with 540 additions and 266 deletions

61
roles/vdr/tasks/main.yml Normal file
View File

@@ -0,0 +1,61 @@
---
# file: roles/vdr/tasks/main.yml
- name: apt | install basic vdr packages
apt:
name: '{{ item }}'
state: present
install_recommends: no
with_items:
- vdr
- vdrctl
- vdr-plugin-dbus2vdr
- name: create vdr recdir
file:
state: directory
owner: '{{ vdr.user }}'
group: '{{ vdr.group }}'
mode: 0775
dest: '{{ vdr.recdir }}'
- name: set option to use hide-first-recording-level patch
blockinfile:
dest: /etc/vdr/conf.d/04-vdr-hide-first-recordinglevel.conf
create: true
block: |
[vdr]
--hide-first-recording-level
when:
vdr.hide_first_recording_level
- name: create local dir in recdir
file:
state: directory
owner: '{{ vdr.user }}'
group: '{{ vdr.group }}'
mode: '0775'
dest: '{{ vdr.recdir }}/local'
when:
vdr.hide_first_recording_level
- name: install additional vdr plugins
apt:
name: '{{ item }}'
state: present
install_recommends: no
with_items:
'{{ vdr_plugins }}'
- name: create directories for media files
file:
state: directory
owner: '{{ vdr.user }}'
group: '{{ vdr.group }}'
mode: 0777
dest: '{{ item }}'
with_items:
- /srv/videos
- /srv/music
- /srv/picture
- /srv/backups

View File

@@ -1,20 +1,22 @@
---
# file: roles/yavdr-common/defaults/main.yml
branch: unstable
repositories:
- 'ppa:yavdr/main'
- 'ppa:yavdr/unstable-main'
- 'ppa:yavdr/{{branch}}-vdr'
- 'ppa:yavdr/{{branch}}-kodi'
- 'ppa:yavdr/{{branch}}-yavdr'
- 'ppa:yavdr/main'
- 'ppa:yavdr/unstable-main'
- 'ppa:yavdr/{{branch}}-vdr'
- 'ppa:yavdr/{{branch}}-kodi'
- 'ppa:yavdr/{{branch}}-yavdr'
drivers:
sundtek: auto
ddvb-dkms: auto
sundtek: auto
ddvb-dkms: auto
extra_packages:
- vim
- tree
- w-scan
extra_packages:
- vim
- tree
- w-scan
vdr:
user: vdr
@@ -23,6 +25,6 @@ vdr:
gid: 666
home: /var/lib/vdr
recdir: /srv/vdr/video
hide_first_recording_level: true
hide_first_recording_level: false
safe_dirnames: true
override_vdr_charset: false

View File

@@ -1,8 +1,7 @@
---
# This playbook sets up the basic packages an directories for a yaVDR installation
- name: apt| prevent installation of recommended packages
- name: apt | prevent automatic installation of recommended packages
blockinfile:
dest: /etc/apt/apt.conf.d/90norecommends
create: yes
@@ -25,66 +24,22 @@
upgrade: dist
update_cache: yes
- name: install basic packages
- name: apt | install basic packages
apt:
name: '{{ item }}'
state: present
install_recommends: no
name: '{{ item }}'
state: present
install_recommends: no
with_items:
- anacron
- at
- bash-completion
- biosdevname
- linux-firmware
- psmisc
- software-properties-common
- ssh
- ubuntu-drivers-common
- vdr
- vdr-plugin-dbus2vdr
- vdrctl
- wget
- wpasupplicant
- usbutils
- xfsprogs
- name: create vdr recdir
file:
state: directory
owner: '{{ vdr.user }}'
group: '{{ vdr.group }}'
mode: 0775
dest: '{{ vdr.recdir }}'
- name: set option to use hide-first-recording-level patch
blockinfile:
dest: /etc/vdr/conf.d/04-vdr-hide-first-recordinglevel.conf
create: true
block: |
[vdr]
--hide-first-recording-level
when:
vdr.hide_first_recording_level
- name: create local dir in recdir
file:
state: directory
owner: '{{ vdr.user }}'
group: '{{ vdr.group }}'
mode: 0775
dest: '{{ vdr.recdir }}/local'
when:
vdr.hide_first_recording_level
- name: create directories for media files
file:
state: directory
owner: '{{ vdr.user }}'
group: '{{ vdr.group }}'
mode: 0775
dest: '{{ item }}'
with_items:
- /srv/videos
- /srv/music
- /srv/picture
- /srv/backups
- anacron
- at
- bash-completion
- biosdevname
- linux-firmware
- psmisc
- software-properties-common
- ssh
- ubuntu-drivers-common
- wget
- wpasupplicant
- usbutils
- xfsprogs

View File

@@ -0,0 +1,7 @@
install_avahi: true
install_epgd: true
install_mariadb: true
install_nfs_client: true
install_nfs_server: true
install_samba_client: true
install_samba_server: true

View File

@@ -23,42 +23,10 @@
with_items:
- nfs-kernel-server
when:
- install_nfs_server
- '{{ install_nfs_server }}'
#- name: install and configure mariadb-server
# apt:
# name: "{{ item }}"
# state: present
# install_recommends: no
# with_items:
# - mariadb-server
# - mariadb-client
# - python-mysqldb
# when:
# - install_mariadb
#
#- name: create a new database with name epg2vdr
# mysql_db:
# name: epg2vdr
# state: present
# encoding: utf-8
# when:
# - install_mariadb
#
# mysql_user:
# name: epg2vdr
# password: epg
# priv: 'epg2vdr.*:ALL,GRANT'
# host_all: yes
# state: present
# when:
# - install_mariadb
#
#- name: Install and configure vdr-epg-daemon
# apt:
# name: "{{ item }}"
# state: present
# with_items:
# - vdr-epg-daemon
# when:
# - install_epgd
# Does this really work? We need a way to check if an interface supports WOL - Python Skript?
# - name: check WOL capabilities of network interfaces
# shell: 'ethtool {{ item }} | grep -Po "(?<=Supports\sWake-on:\s).*$"'
# register: wol
# with_items: '{% for interface in ansible_interfaces if interface != 'lo' and interface != 'bond0' %}'

View File

@@ -1,26 +1,22 @@
---
# This role is used to set up the yaVDR remote control configuration.
- name: install yavdr-remote
tag: install
apt:
name: yavdr-remote
state: present
name: yavdr-remote
state: present
- name: install lirc
tag: install
apt:
name: lircd
state: present
name: lircd
state: present
when:
- install_lircd is defined and install_lircd
- install_lircd is defined and install_lircd
- name: install eventlircd
tag: install
apt:
name: eventlircd
state: present
name: eventlircd
state: present
when:
install_eventlircd is defined and install_eventlircd

View File

@@ -1,61 +1,72 @@
---
# this playbook sets up a graphical user session for a yaVDR installation
# file: roles/yavdr-xorg/tasks/main.yml
- name: install xorg packages
- name: install packages for xorg
apt:
name: "{{ item }}"
state: present
install_recommends: no
name: '{{ item }}'
state: present
with_items:
- openbox
- xlogin
- xorg
- xserver-xorg-input-all
- xserver-xorg-video-all
- xterm
- xorg
- xserver-xorg-video-all
- xserver-xorg-input-all
- xlogin
- xterm
#- yavdr-xorg
- openbox
- name: create /etc/yavdr
# TODO: move to yavdr-xorg package?
- name: create folders for user session
file:
path: /etc/yavdr
state: directory
mode: 0755
state: directory
dest: '{{ item }}'
mode: '0775'
owner: '{{ vdr.user }}'
group: '{{ vdr.group }}'
with_items:
- '{{ vdr.home }}/.config/systemd/user'
- '{{ vdr.home }}/.config/openbox/autostart'
- name: check if /etc/yavdr/autoinstalled exists
stat: path=/etc/yavdr/autoinstalled
register: ubuntu_drivers_autoinstalled
### TODO: move to yavdr-xorg package? ###
- name: create folder for customizations of vdr.service
file:
state: directory
dest: /etc/systemd/system/vdr.service.d
mode: '0775'
- name: install drivers using ubuntu-drivers autodetection
shell: ubuntu-drivers --package-list /etc/yavdr/autoinstalled autoinstall
when: not ubuntu_drivers_autoinstalled.stat.exists
- name: add dependency to X-server for vdr.service using a drop-in
template:
src: templates/vdr-xorg.conf
dest: /etc/systemd/system/vdr.service.d/
### END TODO ###
- name: set up .xinitrc for user vdr
- name: set up .xinitrc for vdr user
template:
src: 'templates/.xinitrc.j2'
dest: '/var/lib/vdr/.xinitrc'
mode: 0755
owner: vdr
group: vdr
- name: create directories for desktop session
file:
state: directory
owner: vdr
group: vdr
mode: 0644
path: '{{ item }}'
with_items:
- /var/lib/vdr/.config/openbox/
- /var/lib/vdr/.config/systemd/user/
owner: '{{ vdr.user }}'
group: '{{ vdr.group }}'
- name: set up autostart for openbox
template:
src: 'templates/autostart.j2'
dest: '/var/lib/vdr/.config/openbox/autostart'
mode: 0755
owner: vdr
group: vdr
owner: '{{ vdr.user }}'
group: '{{ vdr.group }}'
- name: enable xlogin@vt7.service
service:
name: xlogin@vdr.service
enabled: yes
- name: set a login shell for the vdr user
user:
name: '{{ vdr.user }}'
shell: '/bin/bash'
state: present
uid: '{{ vdr.uid }}'
groups: '{{ vdr.group }}'
append: yes
- name: enable and start xlogin for vdr user
systemd:
daemon_reload: yes
name: 'xlogin@{{ vdr.user }}'
enabled: yes
state: started

View File

@@ -1,2 +1,3 @@
#!/bin/bash
# {{ ansible_managed_file }}
exec openbox-session

View File

@@ -0,0 +1,7 @@
# file: roles/yavdr-xorg/templates/vdr-xorg.conf
# {{ ansible_managed_file }}
[Unit]
After=x@vt7.service
Wants=x@vt7.service
BindsTo=x@vt7.service