79 lines
2.4 KiB
Puppet
Executable File
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
|