diff options
-rw-r--r-- | files/sound/devices.sh | 31 | ||||
-rw-r--r-- | manifests/init.pp | 20 |
2 files changed, 48 insertions, 3 deletions
diff --git a/files/sound/devices.sh b/files/sound/devices.sh new file mode 100644 index 0000000..405ed7a --- /dev/null +++ b/files/sound/devices.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +VSERVER="$1" + +if [ -z "$VSERVER" ]; then + ROOT="/" +else + ROOT="/var/vservers/$1" +fi + +if [ "$2" == "--check" ]; then + if [ -e "$ROOT/dev/snd/controlC0" ]; then + exit 0 + else + exit 1 + fi +fi + +mkdir $ROOT/dev/snd +mknod $ROOT/dev/snd/controlC0 c 116 0 +mknod $ROOT/dev/snd/pcmC0D0c c 116 24 +mknod $ROOT/dev/snd/pcmC0D0p c 116 16 +mknod $ROOT/dev/snd/timer c 116 33 + +if [ -z "$VSERVER" ]; then + chown -R root:audio /dev/snd +else + vserver $VSERVER exec chown -R root:audio /dev/snd +fi + +chmod 660 $ROOT/dev/snd/* diff --git a/manifests/init.pp b/manifests/init.pp index f04efda..9822e52 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -206,9 +206,23 @@ class nodo::vserver inherits nodo { # tag => $name, #} - # TODO: sound support - # http://wiki.debian.org/LinuxVserver - # http://seehuhn.de/pages/vserver + # Sound support + if $sound { + if !defined(File["/usr/local/sbin/create-sound-devices"]) { + file { "/usr/local/sbin/create-sound-devices": + ensure => present, + source => "puppet://$server/modules/nodo/sound/devices.sh", + user => root, + group => root, + mode => 755, + } + } + exec { "/usr/local/sbin/create-sound-devices ${name}": + unless => "/usr/local/sbin/create-sound-devices ${name} --check", + user => root, + require => [ Exec["vs_create_${name}"], File["/usr/local/sbin/create-sound-devices"] ], + } + } # Apply firewall rules just for running vservers case $ensure { |