From 32f40f3dc8efda3190cb34b3c2d074a4ab113613 Mon Sep 17 00:00:00 2001 From: Duncan Sommerville Date: Fri, 19 Dec 2014 11:44:23 -0500 Subject: [PATCH] Updated configuration checklist to include running services --- .../application/configs/config-check.php | 106 ++++++++++++++++-- airtime_mvc/build/airtime-setup/load.php | 43 ++++++- installer/bin/requirements-ubuntu-saucy.apt | 1 - installer/bin/requirements-ubuntu-trusty.apt | 1 - 4 files changed, 135 insertions(+), 16 deletions(-) diff --git a/airtime_mvc/application/configs/config-check.php b/airtime_mvc/application/configs/config-check.php index b7b28e72e..475108122 100644 --- a/airtime_mvc/application/configs/config-check.php +++ b/airtime_mvc/application/configs/config-check.php @@ -8,17 +8,20 @@ */ $phpDependencies = checkPhpDependencies(); +$externalServices = checkExternalServices(); $zend = $phpDependencies["zend"]; $postgres = $phpDependencies["postgres"]; -$database = checkDatabaseConfiguration(); -function booleanReduce($a, $b) { - return $a && $b; -} +$database = $externalServices["database"]; +$rabbitmq = $externalServices["rabbitmq"]; -$r = array_reduce($phpDependencies, "booleanReduce", true); -$result = $r && $database; +$pypo = $externalServices["pypo"]; +$liquidsoap = $externalServices["liquidsoap"]; +$mediamonitor = $externalServices["media-monitor"]; +$r1 = array_reduce($phpDependencies, "booleanReduce", true); +$r2 = array_reduce($externalServices, "booleanReduce", true); +$result = $r1 && $r2; ?> @@ -115,22 +118,107 @@ $result = $r && $database; ?> + + + RabbitMQ + + + RabbitMQ configuration for Airtime + + + "> + Make sure RabbitMQ is installed correctly, and that your settings in /etc/airtime/airtime.conf + are correct. Try using sudo rabbitmqctl list_users and sudo rabbitmqctl list_vhosts + to see if the airtime user (or your custom RabbitMQ user) exists, then checking that + sudo rabbitmqctl list_exchanges contains entries for airtime-media-monitor, airtime-pypo, + and airtime-uploads. + + + + + + Media Monitor + + + Airtime media-monitor service + + + "> + Check that the airtime-media-monitor service is installed correctly in /etc/init + and /etc/init.d, and ensure that it's running with +
sudo initctl list | grep airtime-media-monitor. If not, try +
sudo -u www-data service airtime-media-monitor restart. + (Replace www-data with your web user if necessary) + + + + + + Pypo + + + Airtime playout service + + + "> + Check that the airtime-playout service is installed correctly in /etc/init + and /etc/init.d, and ensure that it's running with +
sudo initctl list | grep airtime-playout. If not, try +
sudo -u www-data service airtime-playout restart. + (Replace www-data with your web user if necessary) + + + + + + Liquidsoap + + + Airtime liquidsoap service + + + "> + Check that the airtime-liquidsoap service is installed correctly in /etc/init + and /etc/init.d, and ensure that it's running with +
sudo initctl list | grep airtime-liquidsoap. If not, try +
sudo -u www-data service airtime-liquidsoap restart. + (Replace www-data with your web user if necessary) + + + +

- Looks like something went wrong! If you've tried everything we've recommended in the table above, come - visit our forums + Looks like something went wrong! If you've tried everything we've recommended in the table above and are + still experiencing issues, come visit our forums or check out the manual.

- Your Airtime station is up and running! Get started by logging in with the default username and password: 'admin'/'admin' + Your Airtime station is up and running! Get started by logging in with the default username and password: admin/admin

checkDatabaseConfiguration(), + "media-monitor" => checkMediaMonitorService(), + "pypo" => checkPlayoutService(), + "liquidsoap" => checkLiquidsoapService(), + "rabbitmq" => checkRMQConnection() + ); +} + /** * Check the database configuration by fetching a connection from Propel * @@ -84,8 +104,6 @@ function checkRMQConnection() { // Check for airtime.conf in /etc/airtime/ first, then check in the build directory, if (file_exists(AIRTIME_CONFIG_STOR . AIRTIME_CONFIG)) { $ini = parse_ini_file(AIRTIME_CONFIG_STOR . AIRTIME_CONFIG, true); - } else if (file_exists(BUILD_PATH . AIRTIME_CONFIG)) { - $ini = parse_ini_file(BUILD_PATH . AIRTIME_CONFIG, true); } else { $ini = parse_ini_file(BUILD_PATH . "airtime.example.conf", true); } @@ -96,4 +114,19 @@ function checkRMQConnection() { $ini[RMQ_INI_SECTION]["password"], $ini[RMQ_INI_SECTION]["vhost"]); return isset($conn); +} + +function checkMediaMonitorService() { + exec("initctl list | grep airtime-media-monitor", $out, $status); + return $status == 0; +} + +function checkPlayoutService() { + exec("initctl list | grep airtime-playout", $out, $status); + return $status == 0; +} + +function checkLiquidsoapService() { + exec("initctl list | grep airtime-liquidsoap", $out, $status); + return $status == 0; } \ No newline at end of file diff --git a/installer/bin/requirements-ubuntu-saucy.apt b/installer/bin/requirements-ubuntu-saucy.apt index 0d818a8dd..157e0d177 100644 --- a/installer/bin/requirements-ubuntu-saucy.apt +++ b/installer/bin/requirements-ubuntu-saucy.apt @@ -59,6 +59,5 @@ liquidsoap-plugin-voaacenc liquidsoap-plugin-vorbis sourcefabric-keyring -liquidsoap silan libopus0 \ No newline at end of file diff --git a/installer/bin/requirements-ubuntu-trusty.apt b/installer/bin/requirements-ubuntu-trusty.apt index affad0d98..7ece49ce4 100644 --- a/installer/bin/requirements-ubuntu-trusty.apt +++ b/installer/bin/requirements-ubuntu-trusty.apt @@ -41,6 +41,5 @@ libzend-framework-php coreutils -liquidsoap silan libopus0 \ No newline at end of file