Sous-sections


Installation

La suite sched est écrite en perl. L'application est disponible sous forme de package pour la distribution Debian.

Installation typique

Les modules sched_master, sched_view et sched_builder ont été étudiés pour fonctionner sur Debian. Il est possible d'utiliser un autre système, mais l'installation ne sera pas détaillée ici.

Les programmes (sched_slave, sched_xfer, sched_job, sched_builder) doivent être installés dans le PATH (ex /usr/local/bin)

Certains chemins doivent être adaptés suivant votre environnement dans le fichier src/lib/sched/Sched.pm.

our $prefix = '/tmp/sched' ;
our $prefix_etc = "$prefix/etc" ;
our $prefix_bin = "$prefix/bin" ;
our $prefix_share = "$prefix/share" ;

Le répertoire share peut être recré via la commande ./src/utils/mk_share.sh

Les librairies src/lib/sched doivent être installées dans un répertoire perl (@INC).

localhost:~/# perl -e 'use exemple;'
Can't locate exemple.pm in @INC 
(@INC contains: 
  /etc/perl 
  /usr/local/lib/perl/5.8.4
  /usr/local/share/perl/5.8.4
  /usr/lib/perl5
  ...)
BEGIN failed--compilation aborted at - line 1.

Les librairies peuvent être installées dans un répertoire non système, il faut alors utiliser la variable PERL5LIB ou bien ajouter au début des programmes un use lib;

#!/usr/bin/perl -w
use lib '/path/to/sched/lib' ;

ou bien :

plume:~/tmp# export PERL5LIB=~/sched/src/lib/sched/

Modules CPAN

L'installation des modules CPAN peut être faite directement via le réseau (avec résolution des dépendances). Il est possible de les installer dans un répertoire spécial (PREFIX) pour pouvoir dupliquer l'installation (il faudra alors mettre à jour la variable PERL5LIB).

  perl -MCPAN -e shell
  cpan# install Net::EasyTCP

Modules communs

  - Net::EasyTCP
  - XML::Mini
  - Text::Balanced 
  - Digest::MD5 
  - Log::Log4perl
  - MIME::Base64
  - Config::IniFiles 
  - Tie::File 
  - Time::HiRes
  - Event
  - Time::ParseDate

Notes

Il faut patcher la librairie XML::Mini pour qu'elle fonctionne avec sched

--- org/XML/Mini/Document.pm        2004-10-01 23:03:20.000000000 +0200
+++ new/XML/Mini/Document.pm    2004-10-22 21:30:49.000000000 +0200
@@ -761,0 +761,0 @@

     return undef unless (defined $attrString);
     my $count = 0;
-    while ($attrString =~ /([^\s]+)\s*=\s*(['"])([^\2]+?)\2/g)
+    while ($attrString =~ /([^\s]+?)\s*=\s*(['"])([^\2]*?)\2/g)
     {
        my $attrname = $1;
        my $attrval = $3;

Modules optionnels

Ces modules sont utilisés par la librairie de communication réseau.

  - Compress::Zlib
  - Crypt::Blowfish
  - Crypt::CBC

Modules sched_master

  - DBI
  - Pg
  - String::Random

Modules sched_xfer

  - HTTP::Daemon
  - Net::IPNetMember

Module sched_builder

  - Gnome2
  - Gnome2::Canvas
  - Gtk2::GladeXML

Plateformes testées

OS Module Notes
Linux i386 debian (sid) sched_master OK
  sched_job OK
  sched_xfer OK
  sched_slave OK
Ubuntu 5.04 sched_master OK
  sched_job OK
  sched_xfer OK
  sched_slave OK
Solaris sched_job OK
  sched_slave OK
Linux FC2 sched_job OK
  sched_slave OK
Linux Redhat7.3 sched_job OK
  sched_slave OK
Windows 2003 sched_job via cygwin (problème dans le module réseau)
  sched_slave via cygwin
Windows XP sched_job via cygwin
  sched_slave via cygwin
  sched_xfer via cygwin

Notes sur l'installation sous Windows

Il faut installer cygwin avec au minimum les composants suivants :

Le programme cygrunsrv permet de transformer sched_slave et sched_xfer en service NT.

bash:# cygrunsrv -I sched_slave -p /bin/perl.exe \ 
       -a '/path/to/sched_slave -c /path/to/etc/slave.cfg' \ 
       -e PERL5LIB=/perl/lib/perl5/site_perl/5.8:/perl/lib/perl5/site_perl/5.8/cygwin:/path/to/sched/lib \
       -u utilisateur_administrateur

Installation sched_master

Le sched_master permet de :

Pour faire ce travail, le programme ne requière pas de droit particulier. Il peut donc être exécuté en tant que sched/sched par exemple.

Utilisation de firewall

Les trames réseaux ne comportent pas d'adresse ip. Il est donc possible d'utiliser du NAT/SNAT et autres joyeusetés tant appréciées par vos administrateurs réseaux. Il faut rester cohérent dans la configuration et la déclaration des machines.


Source Destination Port/Protocole
sched_slave sched_master master_port
sched_job sched_master master_port
sched_master sched_xfer xfer_port
Mozilla sched_view http

Figure 4: Liens réseaux
\includegraphics[width=10cm]{inc/network1.eps}


Base POSTGRESQL

Ajout d'un utilisateur sched :

postgres@plume:~# createuser -P sched
Enter password for new user:
Enter it again:
Shall the new user be allowed to create databases? (y/n) n
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER

Création d'une base sched :

postgres@plume:~# createdb -O sched sched
CREATE DATABASE

Gestion des droits de connexion :

postgres@plume:~# grep sched /etc/postgresql/pg_hba.conf
local   sched     sched     password

Chargement de la structure de la base :

postgres@plume:~# psql -U sched -W sched < pg.sql

Installation sched_view

Pré-requis


Configuration Apache

ScriptAlias /cgi-bin/sched/ /usr/lib/cgi-bin/sched/
<Directory "/usr/lib/cgi-bin/sched">
    AllowOverride AuthConfig
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>

Alias /sched /usr/share/sched/html
<Directory "/usr/share/sched/html">
    Options None
    AllowOverride AuthConfig
    Order allow,deny
    Allow from all
</Directory>

Visualisation des résultats

L'utilisation du navigateur Mozilla (1.7) avec le support SVG permet de visualiser les rapports d'exécution (voir sur http://localhost/sched). (Fig 3)

Sur debian et ubuntu, il faut modifier /etc/mozilla/prefs.js pour afficher le text dans les composants SVG.

pref("font.FreeType2.enable", true);

pref("font.directory.truetype.1", 
     "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType");

pref("font.directory.truetype.2", "/usr/share/fonts/truetype");
pref("font.directory.truetype.3", "/usr/share/fonts/truetype/openoffice");

Installation sur debian

Vous devez récupérer les différents .deb dans la section download sur www.nongnu.org/sched, puis il faut les installer via dpkg -i *.deb. Pour installer les dépendances demandées faites un apt-get isntall -f. Des fichiers de configuration sample sont installés sous /etc/sched, il faut les vérifier et autoriser le démarrage des daemons sous /etc/default/sched-*.

eric@zog:~/travail/sched/debian# cat /etc/default/sched-*
MASTER_CONFIG=ok
SLAVE_CONFIG=

sched_master sur debian

Après l'installation des packages, il faut initialiser la base de donnée (cf 2.5) et positionner la chaine de connexion dans /etc/sched/master.cfg et /etc/sched/cgi.cfg.

Eric 2005-12-17