Puppet Class: voipmonitor::server::install
- Defined in:
- manifests/server/install.pp
Overview
Installs voipmonitor server
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'manifests/server/install.pp', line 2
class voipmonitor::server::install(
Boolean $manage_cron,
String $html_folder,
String $install_location,
String $spooldir_prefix,
) {
# prerequisites without php modules
$prereqs = [
'mtr',
'tshark',
'gsfonts',
'rrdtool',
'librsvg2-bin',
]
package { $prereqs:
ensure => present
}
file { "${html_folder}/bin":
ensure => directory,
owner => 'www-data',
group => 'www-data',
}
exec { 'get phantomjs':
command => "/usr/bin/wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/phantomjs-2.1.1-x86_64.gz/download -O ${html_folder}/bin/phantomjs-2.1.1-x86_64.gz",
creates => "${html_folder}/bin/phantomjs-2.1.1-x86_64.gz"
}
exec { 'get sox':
command => "/usr/bin/wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/sox-x86_64.gz/download -O ${html_folder}/bin/sox-x86_64.gz",
creates => "${html_folder}/bin/sox-x86_64.gz"
}
exec { 'get tshark':
command => "/usr/bin/wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/tshark-2.3.0.3-x86_64.gz/download -O ${html_folder}/bin/tshark-2.3.0.3-x86_64.gz",
creates => "${html_folder}/bin/tshark-2.3.0.3-x86_64.gz"
}
exec { 'get mergecap':
command => "/usr/bin/wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/mergecap-2.3.0.3-x86_64.gz/download -O ${html_folder}/bin/mergecap-2.3.0.3-x86_64.gz",
creates => "${html_folder}/bin/mergecap-2.3.0.3-x86_64.gz"
}
exec { 'get t38':
command => "/usr/bin/wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/t38_decode-2-i686.gz/download -O ${html_folder}/bin/t38_decode-2-i686.gz",
creates => "${html_folder}/bin/t38_decode-2-i686.gz"
}
exec { 'unpack phantomjs-2.1.1-x86_64':
command => '/bin/gunzip phantomjs-2.1.1-x86_64.gz && /bin/chmod +x phantomjs-2.1.1-x86_64',
cwd => "${html_folder}/bin",
creates => "${html_folder}/bin/phantomjs-2.1.1-x86_64"
}
exec { 'unpack tshark-2.3.0.3-x86_64':
command => '/bin/gunzip tshark-2.3.0.3-x86_64.gz && /bin/chmod +x tshark-2.3.0.3-x86_64',
cwd => "${html_folder}/bin",
creates => "${html_folder}/bin/tshark-2.3.0.3-x86_64",
}
exec { 'unpack sox-x86_64':
command => '/bin/gunzip sox-x86_64.gz && /bin/chmod +x sox-x86_64',
cwd => "${html_folder}/bin",
creates => "${html_folder}/bin/sox-x86_64",
}
exec { 'unpack mergecap-2.3.0.3-x86_64':
command => '/bin/gunzip mergecap-2.3.0.3-x86_64.gz && /bin/chmod +x mergecap-2.3.0.3-x86_64',
cwd => "${html_folder}/bin",
creates => "${html_folder}/bin/mergecap-2.3.0.3-x86_64",
}
exec { 'unpack t38_decode-2-i686':
command => '/bin/gunzip t38_decode-2-i686.gz && /bin/chmod +x t38_decode-2-i686',
cwd => "${html_folder}/bin",
creates => "${html_folder}/bin/t38_decode-2-i686",
}
# IONcube
exec { 'install IONcube':
command => '/usr/bin/wget http://voipmonitor.org/ioncube/x86_64/ioncube_loader_lin_7.0.so -O /usr/lib/php/20151012/ioncube_loader_lin_7.0.so \
&& /bin/echo "zend_extension = /usr/lib/php/20151012/ioncube_loader_lin_7.0.so" > /etc/php/7.0/mods-available/ioncube.ini \
&& /bin/ln -s /etc/php/7.0/mods-available/ioncube.ini /etc/php/7.0/apache2/conf.d/01-ioncube.ini \
&& /bin/ln -s /etc/php/7.0/mods-available/ioncube.ini /etc/php/7.0/fpm/conf.d/01-ioncube.ini \
&& /bin/ln -s /etc/php/7.0/mods-available/ioncube.ini /etc/php/7.0/cli/conf.d/01-ioncube.ini',
creates => '/usr/lib/php/20151012/ioncube_loader_lin_7.0.so',
}
# GUI
exec { 'fetch GUI':
command => '/usr/bin/wget "http://www.voipmonitor.org/download-gui?version=latest&major=5&phpver=56&festry" -O w.tar.gz',
cwd => $html_folder,
creates => "${html_folder}/index.php"
}
-> exec { 'unpack gui':
command => '/bin/tar -xf w.tar.gz --strip 1',
creates => "${html_folder}/index.php",
cwd => $html_folder,
}
-> exec { 'delete old GUI archive':
command => "/bin/rm ${html_folder}/w.tar.gz",
onlyif => "/usr/bin/test -f ${html_folder}/w.tar.gz",
}
# CRON
if $manage_cron {
cron { 'php cron':
command => "/usr/bin/php ${html_folder}/php/run.php cron",
user => 'root',
hour => '*',
minute => '*/5'
}
}
#
}
|