Prérequis :
un serveur LAMP correctement configuré, avec les modules PHP php5-common
, php5-cli
, php5-mysql
, php5-gd
et php5-ldap
.
IMPORTANT : dans le fichier php.ini
(chemin sous Debian/Ubuntu : /etc/php5/apache2/php.ini
), l'instruction date.timezone
doit impérativement être définie, sous peine de graphes désespérément vides… Exemple :
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Europe/Paris"
1. Copiez le répertoire src
de l'archive où vous le souhaitez dans votre serveur web et renommez-le en qoq-cot
.
2. Renommez le fichier config.php.dist
en config.php
.
3. Éditez le fichier config.php
et renseignez les différentes constantes qui servent à paramétrer votre QOQ-COT rien qu'à vous.
Quelques explications pour le paramétrage de config.php
:
La première partie rassemble les informations nécessaires (nom de la base, du serveur MySQL associé, utilisateur MySQL et password…) pour la connexion à la base de données où QoQ-CoT, plus précisément le coq, stocke les informations de connexion des utilisateurs, reçues par les poussins. Nous suggérons, sans grande originalité, d'appeler la base « QoQCoT » (pas de tirets « - » autorisés dans les noms de bases MySQL…) et l'utilisateur « QoQCoT_user » (c'est ainsi que nous y ferons référence dans ce qui suit). La création de QoQCoT
et de QoQCoT_user
se fera dans l'étape suivante.
Ces informations DOIVENT être les mêmes que celles spécifiées dans le fichier coq.yml
de configuration du coq (voir le fichier ressources/poussin-coq/coq/README.TXT
).
La deuxième partie rassemble les identifiants pour vous connecter à votre base
JeDDLaJ. L'utilisation de JeDDLaJ est facultative. Si vous ne savez pas ce qu'est JeDDLaJ, c'est que vous ne l'utilisez probablement pas…
Enfin il vous reste à renseigner le login d'un usager qui bénéficiera des droits “admin” : accès aux données de connexions nominatives, possibilité de lancer l'actualisation des données ET… droits d'ajout/suppression des admins. C'est donc cet usager qui devra se connecter pour ajouter, grâce à l'onglet « ADMIN » de l'interface, tous les autres admins nécessaires.
4. Créer la base de données QoQCoT
et l'utilisateur QoQCoT_user
. Ne pas oublier de donner les droits INSERT
, UPDATE
, SELECT
et TRIGGER
sur la base QoQCoT
à l'utilisateur QoQCoT_user
depuis la machine où est installé l'interface web QoQ-CoT ET depuis la machine où tournera le coq (nous suggérons fortement d'installer le coq sur le serveur MySQL). Pour vous éviter les traces de cambouis sous les ongles, vous pouvez, si vous le souhaitez, confier toute cette opération au script ressources/doc/INSTALL/CREATE_DB_AND_USER_QoQ-CoT.sh
de l'archive. Facile :
4.1. copier ressources/doc/INSTALL/CREATE_DB_AND_USER_QoQ-CoT.sh
sur un serveur Linux disposant du client MySQL ET duquel l'utilisateur root
de MySQL est autorisé à se connecter (table user
de la base mysql
). Le serveur MySQL est un choix cohérent…
4.2. copier dans le même répertoire le fichier config.php
que vous avez soigneusement rempli : le script utilise ce fichier pour récupérer toutes les données utiles à la création de la base.
4.3. lancer CREATE_DB_AND_USER_QoQ-CoT.sh
4.4. le script vous demandera d'indiquer sur quelles machines tourneront 1) l'interface web QoQ-CoT et 2) le coq afin de pouvoir paramétrer dans MySQL les autorisations d'écriture sur la base QoQCoT
depuis lesdites machines pour l'utilisateur QoQCoT_user
4.5. la base QoQCoT
est désormais prête. Le coq va pouvoir la nourrir, l'interface web y puiser toutes les infos nécessaires pour générer tous ces merveilleux graphiques dont votre DSI est déjà fou.
4.6. vous pouvez détruire les copies de CREATE_DB_AND_USER_QoQ-CoT.sh
et config.php
, leur heure de gloire, éphémère autant qu'unique, est passée.
5. Ajout des tables nécessaires dans la base, insertion de vos salles dans l'application et ajout du trigger sur la base qui va interdire toute mise à jour (forcément malicieuse, par exemple dans le but de masquer une présence sur une machine) d'un date de fin de connexion par une date antérieure.
Ces opérations sont effectuées grâce au script qoq-cot/setup.php
.
Concernant l'insertion des salles, la source des données peut-être JeDDLaJ ou un fichier au format csv. Notons que depuis la version 2.0 Bernadette, ce script peut être relancé à loisir, sans que les données de connexion ne soient modifiées, ni que les tables et le trigger déjà créés soient modifiés (les opérations de création de table n'ont lieu que si les tables n'existent pas encore et le trigger est reconstruit à l'identique) : les salles seront alors redéfinies selon les données d'entrée (CSV ou JeDDLaJ ) au moment de l'exécution. Pratique pour ajouter/supprimer/modifier des salles et groupes de salles…
5.1. Cas CSV
Le fichier csv doit être formaté de la façon suivante :
Chaque ligne comporte 4 champs dans l'ordre suivant : “Nom de la machine”, “Nom Netbios de la machine”, “Nom de la salle à laquelle appartient la machine”, “Nom du groupe auquel appartient la salle”
Le séparateur est la virgule et les champs sont entre double quotes.
Une seule ligne par machine et donc une seule occurrence d'une machine donnée dans le fichier, ce qui signifie qu'une même machine ne peut appartenir à 2 salles distinctes
“Nom de la machine” doit être un nom court (c'est-à-dire
toto
si le nom
DNS complet de la machine est
toto.domaine.org
)
et n'apparaître qu'une seule fois en tant que nom machine dans le fichier. Si on a plusieurs machines au même nom court (
toto.chicken.org
et
toto.fried.chicken.org
), il faudra les différencier à l'aide du paramètre
hostname
de
poussin.yml
. Une aide est fournie en commentaire dans le fichier
poussin.yml
fourni, mais on pourra consulter pour plus de détails
cette section de la procédure d'upgrade. (Et si on s'intéresse à l'historique du nommage des machines dans QoQ-CoT, on aura beaucoup de plaisir à lire
cette entrée de FAQ).
“Nom Netbios de la machine” : il DOIT figurer (setup.php
l'attend), mais il ne sert plus dans QoQ-CoT à partir de la v3.0. On le conserve car il est encore utile dans le cas d'un parc (ou d'une partie du parc) fonctionnant encore en mode rsyslog (c'est le cas en général après un upgrade depuis une version <3.0). Vous pouvez donc y inscrire le nom que vous souhaitez, tant qu'il n'y a
pas plus d'une occurrence d'un nom NetBios donné dans le fichier, mais
nous suggérons fortement de mettre le même que le nom machine, c'est-à-dire probablement le vrai nom NetBios 1). Plus d'infos pour les curieux dans
cette entrée de FAQ, mais j'ai bien peur qu'elle vous oblige à lire aussi
celle-ci…
Lancer ensuite le script setup.php
: setup.php csv /chemin/vers/votre/fichier.csv
5.2. Cas JeDDLaJ
Si vous utilisez JeDDLaJ, sachez que, par défaut, le script importera seulement les groupes dont le nom correspond au motif suivant
'#^\[(.*)]\ ([S|s]alle\ [a-zA-Z0-9\ \/.]*)#';
Pour l'instant, vous devez, pour modifier ce motif, editer le fichier setup.php
et modifier la déclaration de la variable
. Sera peut-être possible depuis la config. dans une future version…
Lancer ensuite le script setup.php
: setup.php jeddlaj
6. Installation des autorisations d'accès
Créez, dans le répertoire qoq-cot
, un fichier .htaccess
qui va définir l'ensemble U
des usagers qui pourront se connecter à votre cocotte : libre à vous d'utiliser tout mode d'authentification/autorisations. Astuce utile : faites en sorte que l'usager choisi comme « admin » dans la config fasse partie de U
, c'est mieux
De nombreux exemples de fichiers .htaccess
mettant en jeu divers mécanismes d'authentification/autorisations sont disponibles dans le répertoire qoq-cot/ressources/EXEMPLES_.htaccess
Vous le savez évidemment… mais rappelons quand même que pour que le fichier .htaccess
soit pris en compte par Apache, il est nécessaire d'ajouter cette directive à la configuration de votre host Apache :
<Directory /votre/chemin/vers/qoq-cot>
AllowOverride AuthConfig
</Directory>
À NOTER 2 petites faiblesses concernant le logout… :
si vous choisissez une authentification par CAS, le menu « Déconnexion » sera inopérant… Le seul moyen de se déconnecter consistera dans ce cas à fermer le navigateur ;
même punition si vous utilisez Internet Explorer (mais là, vous l'aurez bien cherché…), et cette fois quelle que soit votre méthode d'authentification…
7. Peuplement de la base
Une fois les tables Connexions
, Salles
et MachinesToSalles
créées par le setup, il ne vous reste qu'à peupler la base.
Bonne nouvelle, vous n'avez rien à faire Les poussins et le coq vont travailler pour vous et remplir votre base au fil de l'eau sans action de votre part.
Connectez-vous à l'interface sous le nom de l'usager choisi comme « admin » dans la config et observez avec émotion les connexions naître, vivre et mourir…
N. B. Le menu « Actualisation des données » que vous trouvez dans l'interface quand vous vous connectez sous le nom de l'usager choisi comme « admin » dans la config est un résidu de l'ancien fonctionnement de QoQ-CoT où une table intermédiaire de la base était remplie via rsyslog
, l'actualisation des données consistant à pousser les nouvelles données de la table intermédiaire vers la table cible Connexions
.
Désormais, cette table est directement remplie par le coq à partir des informations que lui envoient les poussins.
Le menu est encore présent car certains utilisateurs de QoQ-CoT version 2.0 Bernadette qui upgradent vers une version supérieure à 3.0 Commandant Poulard vont fonctionner un certain temps en mode hybride (poussin/coq pour certaines machines, rsyslog pour celles non encore migrées en poussin/coq) avec un remplissage de la table Connexions
simultanément par les 2 méthodes jusqu'à la fin de leur migration.
Vous voici enfin prêt. Nous espérons que vous passerez de bons moments, studieux mais intimes, avec votre QoQ-CoT