Pré-requis côté serveur :
- un serveur MYSQL
- un serveur Apache
- PHP configuré pour Apache avec l'extension SOAP
- Python avec l'extension SOAPpy
- Librairie javascript DOJO
- optionnel mais fortement conseillé : PHPMyAdmin
- optionnel : un serveur LDAP pour l'autorisation d'accès
- optionnel : GLPI, pour utiliser l'import via GLPI
Les différents modules peuvent être sur des serveurs séparés ou sur un même serveur.
Les differents modules n'impliquent pas une charge importante sur les serveurs.
Pré-requis côté client :
- pour Linux : python
- pour Windows : aucun pré-requis
- pour compiler les sources Windows : PythonWin + extension Win32 + extension PIL + py2exe
Installation :
pour des raisons de simplicité on supposera que tous les modules serveurs sont sur la même machine que l'on nommera wicopro.foobar.com
On supposera également que la racine web d'apache se trouve dans le sous répertoire /data/www
- WOD (WiCoPro Object Database):
le serveur WOD est écrit en PHP, il permet de faire la liaison entre la base MySQL
et les modules WWC et WEX.
Il faut copier l'ensemble des fichiers de WOD dans le sous-répertoire /data/www/wod
puis éditer le fichier /data/www/wod/lib/constantes.php
pour définir l'emplacement ainsi que les accès à la base MySQL.
Il faut importer le fichier WOD.sql pour créer la base et l'utilisateur sur le serveur MySQL
(vérifier qu'il contient bien les valeurs souhaitées).
Vous devez ensuite injecter le premier lieu dans la base MySQL (voir hiérarchie des lieux et structure de MySQL).
Il doit etre de la forme :
ID = 0 (obligatoirement 0, c'est la racine de la hiérarchie)
NAME = votre_site
IMAGES = plan_de_votre_site.jpg
XPARENT = 0 (ou NULL)
YPARENT = 0 (ou NULL)
TYPE = S (obligatoire, c'est un site)
PID = -1 (obligatoirement -1, il n'a pas de parent)
Pour tester le bon fonctionnement de WOD, il suffit de se rendre sur la page http://wicopro.foobar.com/wod/test.php,
elle devrait renvoyer le numéro de version du WOD ainsi que le nom du site que vous avez injecté.
- WCS (WiCoPro Communication Server):
le serveur WCS est le seul à communiquer avec les machines, il accepte les requètes SOAP des modules WWC et WEX.
Pour l'installer il faut recopier l'ensemble des fichiers dans un sous répertoire sur le serveur
(ex: /usr/local/wicopro/wcs). On édite ensuite le fichier bin/wcs
pour renseigner la valeur du port TCP, l'adresse d'écoute du serveur et le mot de passe sécurisant la communication entre WCS et les clients
(ex: TCP_PORT=8080 , IP_ADDR=0.0.0.0).
On sécurise ensuite le répertoire (chmod -R 700 /usr/local/wicopro/wcs) et on crée un fichier permettant de lancer le
service au démarrage de la machine
(ex: echo "/usr/local/wicopro/wcs/bin/wcs &" > /etc/init.d/wcs && ln -sf ../init.d/wcs /etc/rc2.d/S50wcs).
- WWC (WiCoPro Web Console):
la console web est l'élément le plus important de la suite wiCoPro, c'est la partie qui permet de visualiser l'état des machines.
L'installation consiste à recopier les fichiers de WWC dans la racine du serveur web (ex:/data/www/wwc).
On édite ensuite le fichier wwc/lib/global.php de façon à correspondre à l'installation.
Pour finir il faut copier l'image du premier lieu (ex: plan_de_votre_site.jpg ) dans le répertoire wwc/images/plan/
Une fois connecté sur l'interface WWC, on sélectionne le lieu dans l'arborescence de gauche,
on peut déplacer les objects présents pour les situer géographiquement sur le plan, et double-cliquer pour agir dessus.
- WEX (WiCoPro EXecutor):
pour installer le module WEX il suffit de copier le fichier wEX dans un sous répertoire sur le serveur
(ex: /usr/local/wicopro/wex/) et d'éditer celui-ci pour renseigner les adresses des serveurs WCS et WOD.
La section action permet de définir l'action à éxecuter et l'ensemble des machines sur lequel cette action s'exécute.
Il faut dupliquer le fichier wEX autant de fois que nécéssaire pour utiliser plusieurs actions.
On doit ensuite ajouter les appels aux fichiers wEx dans la crontab.
- Client :
sous windows le client tourne en tant que service, il suffit de copier l'ensemble des fichiers du client windows
dans un sous répertoire (ex: c:\program files\wicopro) puis de lancer client.exe -install -interactive -auto.
Il faut ensuite redémarrer pour lancer le service installé (ou le lancer à la main via le panneau de configuration).
Sous linux il faut copier les fichiers dans un sous répertoire (ex: /usr/local/wicopro),
mettre les droits pour le root seulement (chmod -R 700 /usr/local/wicopro) et créer un fichier permettant de lancer le
service au démarrage de la machine
(ex: echo "/usr/local/wicopro/bin/client.py &" > /etc/init.d/wicopro && ln -sf ../init.d/wicopro /etc/rc2.d/S50wicopro).
- Plugin GLPI :
Pour installer le plugins GLPI, recopier celui-ci dans le répertoire plugins de GLPI et suivre la documentation de GLPI pour compléter l'installation.
Une fois tous ces modules installés on dispose d'une installation viable de WiCoPro, mais la base de donnée des lieux et des machines est vide.
Pour remplir cette base, la manière la plus simple consiste à passer par le plugin GLPI,
celui-ci importe les lieux et les machines directements dans la base MySQL de WOD. Il re-crée l'arborescence des lieux présente dans GLPI.
Le nom de l'image des lieux est fixé par défaut à
nom_du_lieu.jpg et celui des machines à
default.jpg.
Pour l'instant la console WEB ne permet pas de modifier l'image des objets.
Il faut passer directement par la base MySQL (avec par exemple, phpMyAdmin).
Hiérarchie des lieux et des objects dans WiCoPro :
tous les éléments dans WiCoPro sont considérés comme des objets, que se soient des lieux ou des machines.
Ils sont tous organisés avec une relation père fils.
La hiérarchie étant la suivante :
- SITE (S)
- BATIMENT (B)
- ETAGE (E)
- PIECE (P)
- MACHINE (M)
Structure de la base MySQL:
la base MySQL ne comporte qu'une unique table qui regroupe tous les objets.
Tobject:
ID : identifiant interne de la base (en auto-increment)
NAME : nom de la machine ou du lieu
IMAGE : l'image servant à représenter le lieu ou la machine dans la WWC
XPARENT : coordonnée en X sur le plan du parent
YPARENT : coordonnée en Y sur le plan du parent
TYPE : type d'objet (S,B,E,P ou M)
PID : l'ID du parent
Le nom de la machine (NAME) doit être celui qui correspond à son adresse IP, WCS utilisera ce nom pour communiquer avec la machine.
WiCoPro - CIENeT - Matthieu Le Corre - 2007