streamscapes/manifest/streamscapes.pp

79 lines
2.4 KiB
Puppet
Executable File

# MULTINODAL STREAMING MANAGEMENT
#########################################################
# see INSTALL FILE for puppet dependencies and plugins
include stdlib
include nodejs
#########################################################
# SET HOSTNAME BASED ON MACADDRESS
class setHostName{
case $macaddress {
'b8:27:eb:09:68:0c': {$pihostname = "node01"}
'b8:27:eb:f1:11:c2': {$pihostname = "node02" }
'b8:27:eb:16:6a:bc': {$pihostname = "node03" }
'b8:27:eb:0f:3b:cb': {$pihostname = "node04" }
}
file {'/etc/hosts':
ensure => file,
content => template('/home/pi/streamscapes/manifest/templates/hosts.erb'),
}
file {'/etc/hostname':
ensure => file,
content => template('/home/pi/streamscapes/manifest/templates/hostname.erb'),
}
}
# ADD AUTHORISED KEYS TO ALLOW PASSWORDLESS LOGIN FROM MY LAPTOP
# PUPPET CAN HANDLE THIS SOMEHOW BUT THIS WILL SUFFICE FOR NOW
class setKeys{
file {'/home/pi/.ssh/authorized_keys':
ensure => file,
content => template('/home/pi/streamscapes/manifest/templates/authorized_keys.erb'),
}
}
class setStartUp{
file {'/etc/rc.local':
ensure => file,
content => template('/home/pi/streamscapes/manifest/templates/rc.local'),
}
}
#########################################################
# PACKAGES TO INSTALL
class packages {
$packagelist = [ 'screen', 'emacs24-nox', 'curl','inkscape','phantomjs','puppet-el' ]
package { $packagelist : ensure => installed}
}
#########################################################
# NODEJS PACKAGES TO INSTALL
class nodeinstall {
# local installs
# nodejs::npm { "/home/pi/streamscapes/node_modules:$npmlist" :
# ensure => present,
#}
# FOR NOW EVERYTHING GETS INSTALLED GLOBALLY (whats wrong with above syntax)
# global installs
$npmlist = [ 'express','socket.io', 'requirejs','node-osc','osc-min','xmlhttprequest','errorhandler','method-override' ]
package { $npmlist:
ensure => present,
provider => 'npm',
}
}
#########################################################
# STREAMING STUFF TO INSTALL AND CONFIGURE
class streaming {
package { 'liquidsoap' : ensure => installed}
# ADD AUTOSTART LINE TO RC.LOCAL (commmented: now i just overwrite the file)
# file_line { 'autostart_rule':
# path => '/etc/rc.local',
# line => 'cd /home/pi/streamscapes ; su pi -c ./start-stream-in-screen.sh &',
# }
}
include packages
include nodeinstall
include streaming
include setHostName
include setKeys
include setStartUp