Some crib notes on the setup of the 'status board' screen on the wall of 28-R003

Overview

The system uses the 'concerto' digital signage system from http://www.concerto-signage.com. Plan is to use it for
  • Testbed status - nagios
  • vnode availability (X hosts up, X free)
  • [1] patch Q / highlight lagged patches
  • [2] task Q - Highlliht overdue ones
  • Upcoming EGEE events (user forum)
  • upcoming conferences
  • link to indico for white areas / group meetings / other...
  • release notes from the most recent release

This list is not definitive - not all may be implemented but [x] signifies priority items

Backend

The backend for the system containing the DB and the PHP scripts presently runs on a Central VM host called 'concerto'. http://concerto.cern.ch At the moment we're on our '31 days free' deal but given the relatively low overhead of a LAMP server the php scripts could be packaged (with a decent set of redeployment instructions mutter mutter) to be deployed as an apache vhost on any of our internal machines.

yum install php will only install 5.1.x but the software needs 5.2 - This can be grabbed from http://www.jasonlitka.com/media/EL5/i386/ using the instructions on http://www.jasonlitka.com/yum-repository/ However, the slc* repo files have protect=1 (sensibly!) so you'll need to do

[concerto] /root > sed -i 's/protect=1/protect=0/' /etc/yum.repos.d/*.repo
[concerto] /root > yum install php

...
===============================================================================================================================
 Package                      Arch                   Version                            Repository                        Size
===============================================================================================================================
Updating:
 php                          i386                   5.2.11-jason.1                     utterramblings                   3.6 M
Updating for dependencies:
 php-cli                      i386                   5.2.11-jason.1                     utterramblings                   2.6 M
 php-common                   i386                   5.2.11-jason.1                     utterramblings                   506 k
 php-ldap                     i386                   5.2.11-jason.1                     utterramblings                    59 k

Transaction Summary
===============================================================================================================================
Install      0 Package(s)         
Update       4 Package(s)         
Remove       0 Package(s)         

Gotchas

  • cern VM's seem keen to lose the sudo information and then not allow people in the vmadmins group to become root again frown
  • the concerto docs fail to mention that you need to add templates before you can add screens
  • importing RSS feeds needs cli mysql (or a wrapper script)

Frontend

is booted off a minimal iso image that contains the following customisations - unpack their iso and add in / a file called 'config.pl' containing $ENV{'CONCERTO_INSTALL'} = 'http://concerto.cern.ch/';

mac addresses need to be added in the 'screens' section before they work

need to sort out the auto on-off times to save power. perhaps also make a frontend for a cern-supported minimal OS install?

Bugs

Nov 12th

Noticed that the images were't cycling and that the apache log was looking a bit full
[root@concerto httpd]# tail error_log 
[Thu Nov 12 16:10:16 2009] [notice] child pid 11735 exit signal Segmentation fault (11)
[Thu Nov 12 16:10:16 2009] [notice] child pid 11736 exit signal Segmentation fault (11)
[Thu Nov 12 16:10:16 2009] [notice] child pid 11737 exit signal Segmentation fault (11)
[Thu Nov 12 16:10:16 2009] [notice] child pid 11738 exit signal Segmentation fault (11)
[Thu Nov 12 16:10:17 2009] [notice] child pid 11739 exit signal Segmentation fault (11)
[Thu Nov 12 16:10:17 2009] [notice] child pid 11740 exit signal Segmentation fault (11)
[Thu Nov 12 16:10:17 2009] [notice] child pid 11741 exit signal Segmentation fault (11)
[Thu Nov 12 16:10:17 2009] [notice] child pid 11742 exit signal Segmentation fault (11)
[Thu Nov 12 16:10:17 2009] [notice] child pid 11743 exit signal Segmentation fault (11)
[Thu Nov 12 16:10:17 2009] [notice] child pid 11744 exit signal Segmentation fault (11)
[root@concerto httpd]# grep 'exit signal Segmentation fault (11)' error_log | wc -l
189431
[root@concerto httpd]# /etc/init.d/httpd status
httpd (pid  2893) is running...
[root@concerto httpd]# /etc/init.d/httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
[root@concerto httpd]# tail -f error_log 
[Thu Nov 12 16:10:58 2009] [warn] child process 11912 still did not exit, sending a SIGTERM
[Thu Nov 12 16:11:00 2009] [warn] child process 11912 still did not exit, sending a SIGTERM
[Thu Nov 12 16:11:02 2009] [error] child process 11912 still did not exit, sending a SIGKILL
[Thu Nov 12 16:11:03 2009] [notice] SELinux policy enabled; httpd running as context root:system_r:httpd_t
[Thu Nov 12 16:11:03 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu Nov 12 16:11:03 2009] [notice] Digest: generating secret for digest authentication ...
[Thu Nov 12 16:11:03 2009] [notice] Digest: done
[Thu Nov 12 16:11:03 2009] [notice] mod_python: Creating 4 session mutexes based on 256 max processes and 0 max threads.
[Thu Nov 12 16:11:03 2009] [notice] mod_python: using mutex_directory /tmp 
[Thu Nov 12 16:11:03 2009] [notice] Apache/2.2.14 (Unix) DAV/2 PHP/5.2.11 mod_python/3.3.1 Python/2.4.3 mod_ssl/2.2.14 OpenSSL/0.9.8e-fips-rhel5 mod_perl/2.0.4 Perl/v5.8.8 configured -- resuming normal operations

after that it seems to have resumed OK (no intervention needed on frontend(s)

Nov 13th

There are lots of PHP warnings / notices in the error log for apache.

Some of these are simple 'undefined constant' where $foo[bar] should be written as $foo['bar'] (NB - only in the php, not in the HTML side. 1st patch done and submitted upstream (and accepted)

Others are of the form

The problem here is that we check $_SESSION['user'], which is a session parameter, to see if the user is currently logged in, or to get information about them. If the user is not yet logged in, then the code will not yet have set anything to $_SESSION['user'].

The right way to go about this is to have a check for array_key_exists to see if we've set up a session for a particular user yet, and then continue with our valid user check, perhaps:
   if(array_key_exists('user', $_SESSION) && strlen($_SESSION['user']->username)>1) return true;

We'll definitely patch this (or you could do it yourself locally). Note that its a pretty harmless error, and everything will work the way it should (PHP will complain, but then act like that array key is just empty, and return that no, a user has not yet logged in), which is probably why it's still there..

Changes

Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2009-11-17 - unknown
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    EGEE All webs login

This site is powered by the TWiki collaboration platform Powered by Perl This site is powered by the TWiki collaboration platformCopyright & by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Ask a support question or Send feedback