1. Pour simplifier ici la lecture, on nommera la base mysql QoQCoT
(pas de tirets « - » autorisés dans les noms de bases MySQL…) et l'utilisateur associé QoQCoT_user
.
2. Détarer la précieuse archive V4.0 Rocky, par exemple dans /tmp
3. Copier votre qoq-cot/config.php
actuel dans /tmp/qoq-cot/src/
4. Vos données ne risquent rien, bien sûr, lors de cet upgrade… mais sauvez-les quand même… Dumpez donc soigneusement votre base QoQCoT
.
5. UTILE UNIQUEMENT SI VOUS ÉTIEZ EN 3.0 = INUTILE SI VOUS ÉTIEZ EN 3.1 Modifiez votre base de données pour la rendre v3.1 compatible. Pour vous éviter de trop toucher à ces rouages internes recouverts de graisse forcément salissante, car nous tenons à votre confort, nous avons regroupé et automatisé toutes ces modifs dans le seul script /tmp/qoq-cot/ressources/UPGRADE_FROM_PREVIOUS_VERSIONS/ModifieDBV2toV3.sh
.
Hmm, v2toV3 me dites-vous ? Mais je n'ai jamais eu de v2 !!!
Oui, c'est vrai… mais vous allez quand même devoir lancer le script pour certaines de ses actions qui corrigent quelques erreurs de jeunesse de la v3.0…
Mais quelles sont donc ces fameuses actions, me direz-vous, circonspect et méfiant comme doit l'être à raison un informaticien à l'heure du big data et de wikileaks ? Détaillons donc ça ensemble :
a) NORMALEMENT DÉJÀ FAIT LORS DE L'INSTALL de la V3.0 – Pour sécuriser l'insertion des données de connexion, QoQ-CoT depuis la version 3.0 Commandant Poulard préconise l'ajout d'un trigger dans la base de données, qui interdira toute possibilité (forcément malicieuse) de mettre à jour l'heure de fin d'une connexion avec une heure antérieure à celle déjà inscrite dans la base (pour masquer une présence sur une machine, par exemple). Pour ce faire, il faut donner le privilège TRIGGER
à l'utilisateur QoQCoT_user
sur la base QoQCoT
, depuis la machine où tourne l'interface web. C'est ce que va faire ce script. Nous verrons plus bas comment créer effectivement le trigger.
b) INUTILE SI ON N'A JAMAIS EU DE V2.0, mais on va le faire quand même, pour avoir une belle structure de BD up-to-date – Modifier les propriétés du champs idProcess
de la table « Connexions » de façon à ce qu'il puisse être NULL. Ceci est nécessaire en mode hybride rsyslog/poussin-coq. En effet, en mode poussin-coq, l'info du numéro de process, qui servait en mode rsyslog à appairer les événements de connexion et déconnexion, n'a plus de sens, du coup elle n'est pas renseignés lors des requêtes d'insertion dans la base par le coq. Conséquence, surtout si votre serveur MySQL est en mode « strict » : il faut que idProcess
puisse être NULL
. Ainsi, les 2 modes pourront cohabiter.
c) Supprimer la table inutile « Aliases ». Nous avions créé historiquement cette table en prévision, dans une version future, de la gestion le problème épineux du renommage des machines et, plus généralement, de l'évolution dans le temps des salles machines dont on mesure le taux d'utilisation. Mais notre réflexion a évolué et nous avons changé d'algorithme : la version V4.0 Rocky règle ce problème sans cette table qui ne sera finalement jamais utile.
d) INUTILE SI ON N'A JAMAIS EU DE V2.0 – La « raccourcissation » (n. m. : cœur de métier des raccourcissologues) : transformation des noms longs (FQDN) en noms courts (FQDN tronqué avant le premier « . ») dans les tables « Connexions » et « MachinesToSalles ». C'est crucial en cas d'upgrade v2 → v3 car en mode v2, ce sont les noms longs qui sont insérés dans la base tandis qu'à partir du mode poussin-coq, ce sont les noms courts.
Maintenant que nous savons POURQUOI il faut exécuter ce script, voyons COMMENT :
5.1 Exécution du script ModifieDBV2toV3.sh
5.1.1 copier /tmp/qoq-cot/ressources/UPGRADE_FROM_PREVIOUS_VERSIONS/ModifieDBV2toV3.sh
sur un serveur Linux disposant du client MySQL ET depuis lequel l'utilisateur root
de MySQL ET l'utilisateur QoQCoT_user
sont autorisés à se connecter (table user
de la base mysql
). Par exemple le serveur MySQL, ou le serveur qui tourne l'interface web QoQ-CoT…
5.1.2 copier dans le même répertoire votre fichier config.php
(si vous avez suivi les indications, il est dans /tmp/qoq-cot/src/
) : le script utilise ce fichier pour récupérer toutes les données utiles à la création de la base.
5.1.3 Désactivez le cron de peuplade.sh
(résidu du fonctionnement anté-poussin/coq, il y a de fortes probabilités qu'il ne soit pas ou plus présent dans votre installation).
5.1.4 lancer ./ModifieDBV2toV3.sh
dans ce répertoire. À noter :
Vous serez interactivement sollicité pour toutes les actions exécutées par le script. À chaque fois, vous aurez le choix d'effectuer ou non l'action.
Le script peut être lancé un nombre quelconque de fois, les actions pouvant être rejouées indéfiniment sans dommage aucun pour les données.
Les actions, dans l'ordre d'apparition à l'écran :
5.1.4.1 : NORMALEMENT DÉJÀ FAIT LORS DE L'INSTALL de la V3.0, donc dire NON au script sauf si vous aviez sauté cette étape à l'époque – Ajout du droit TRIGGER
: le script vous demandera d'indiquer sur quelle machine tourne l'interface web QoQ-CoT afin de pouvoir paramétrer dans MySQL le droit TRIGGER
sur la base QoQCoT
depuis ladite machine pour l'utilisateur QoQCoT_user
. Une fois l'action terminée, QoQCoT_user
pourra créer le trigger, ça va se passer en 5.2.
5.1.4.2 : Modification des propriétés du champs iDProcess
de la table « Connexions » : bien qu'inutile dans votre cas, faites-le, vous aurez une structure de base up-to-date, c'est toujours mieux.
5.1.4.3 : Suppression de la table inutile « Aliases »
5.1.4.4 : INUTILE POUR VOUS, dites fermement NON au script. – La « raccourcissation » : transformation des noms longs (FQDN) en noms courts (FQDN tronqué avant le premier « . ») dans les tables « Connexions » et « MachinesToSalles »
5.1.5 C'est terminé. Vous pouvez éventuellement détruire les copies de ModifieDBV2toV3.sh
et config.php
, ils ont fini leur travail, furtif et crucial à la fois.
5.2 NORMALEMENT DÉJÀ FAIT LORS DE L'INSTALL de la V3.0 – Création du trigger : cette opération va se faire au travers du script /tmp/qoq-cot/src/setup.php
. Jetez un œil sur la doc d'installation si vous avez besoin de vous rafraîchir la mémoire au sujet du format du fichier .csv.
5.2.1 Retrouver le fichier csv décrivant vos salles, ou mieux (depuis V3.0 Commandant Poulard), régénérez-le dynamiquement à partir des données en base, en lançant /tmp/qoq-cot/src/export_salles_to_csv.php > /chemin/vers/mon/fichier.csv
. Profitez-en pour le modifier/compléter si besoin pour refléter l'évolution de votre structure, très dynamique.
5.2.2 Lancer /tmp/qoq-cot/src/setup.php /chemin/vers/mon/fichier.csv
5.2.3 Ceci va régénérer les salles dans la base en fonction des données du fichier .csv (pas de changement si le fichier .csv n'a pas changé…) ET créer le trigger
Et voilà, c'est déjà fini, le trigger est créé tout comme il faut, vos données sont désormais protégées et vous avez gardé les mains propres et les ongles nets. Merci qui ???
6. Modifiez votre base de données pour la rendre v4.0 compatible. À nouveau profondément désireux de contribuer à rendre votre vie plus simple et plus slow, nous avons regroupé et automatisé toutes ces modifs dans le seul script /tmp/qoq-cot/ressources/UPGRADE_FROM_PREVIOUS_VERSIONS/ModifieDBV3.1toV4.sh
.
L'objectif est double :
Surtout, modifier la table MachinesToSalles afin qu'elle intègre deux nouveaux champs : les dates d'apparition et de disparition de la machine dans la salle. Le stockage de ces dates permet d'implémenter LA nouveauté Rocky V4 : la gestion de l'évolution dans le temps des machines présentes dans les salles afin de fournir des statistiques toujours plus justes et intensifier encore l'orgasme de votre N+1 qui lorsqu'il génère un graphe…
Accessoirement, corriger un tout petit oubli des versions 3.0 et 3.1 : le scripts de création de la DB QoQ-CoT créait un utilisateur MySQL avec tous les bons droits SAUF, oubli de notre part, le droit DELETE. Conséquence principale : impossible de détruire un admin de la base de données depuis l'interface web… On ajoute donc ici ce droit manquant.
6.1 Exécution du script ModifieDBV3.1toV4.0.sh
6.1.1 copier /tmp/qoq-cot/ressources/UPGRADE_FROM_PREVIOUS_VERSIONS/ModifieDBV3.1toV4.0.sh
sur un serveur Linux disposant du client MySQL ET depuis lequel l'utilisateur root
de MySQL ET l'utilisateur QoQCoT_user
sont autorisés à se connecter (table user
de la base mysql
). Par exemple le serveur MySQL, ou le serveur qui tourne l'interface web QoQ-CoT…
6.1.2 copier dans le même répertoire votre fichier config.php
(si vous avez suivi les indications, il est dans /tmp/qoq-cot/src/
) : le script utilise ce fichier pour récupérer toutes les données utiles à la création de la base.
6.1.3 lancer ./ModifieDBV3.1toV4.0.sh
dans ce répertoire. À noter :
Vous serez interactivement sollicité pour toutes les actions exécutées par le script. À chaque fois, vous aurez le choix d'effectuer ou non l'action.
Le script peut être lancé un nombre quelconque de fois, les actions pouvant être rejouées indéfiniment sans dommage aucun pour les données.
Les actions, dans l'ordre d'apparition à l'écran :
6.1.3.1 : Modification de la structure de la table MachinesToSalles
6.1.3.2 : Ajout du droit DELETE sur la base QoQCoT pour l'utilisateur QoQCoT_user
6.1.4 C'est terminé. Vous pouvez éventuellement détruire les copies de ModifieDBV3.1toV4.0.sh
et config.php
, ils ont fini leur travail, tout à la fois furtif et colossal.
7. Copiez votre qoq-cot/.htaccess
actuel vers /tmp/qoq-cot/src/.htaccess
8. Renommer votre répertoire qoq-cot
actuel en qoq-cot.old
9. déplacez /tmp/qoq-cot/src
dans votre emplacement de prod (c.-à-d. le répertoire qui contient qoq-cot.old
) et renommez-le en qoq-cot
.
10. Ça y est, votre poulette a retrouvé ses 20 ans et est toujours toute
à vous…
11. Mais ATTENTION, même si votre cocotte est fonctionnelle et vous génère (plus vite qu'avant) de beaux graphes, ça n'est pas encore terminé… Pour bénéficier de la puissance légendaire du Rocky, vous devez maintenant exploiter la spécificité de la version 4.0 : la gestion des durées de présence des machines dans les salles et donc la possibilité de prise en compte des vols, ajouts, renouvellements et tout autre variation du nombre de machines dans le temps. Voir cette entrée de faq pour plus de détails.
Désormais, une date de début et une date de fin de présence dans la salle sont associées à chaque machine. Vous devez maintenant renseigner ces dates, c'est la partie un peu ingrate…
Lors de l'upgrade de la DB en V4 de l'étape 6, toutes les machines se sont vues attribuer une date de début en 1970 et une date de fin en 2300 (via les valeurs par défaut de la table MachinesToSalles pour ces 2 champs). Ceci permet d'avoir une DB exploitable sans erreur par les scripts 4.0 qui utilisent ces champs, mais ne correspond évidemment pas à la réalité des dates d'apparition/disparition des machines dans les salles…
Vous devez donc exporter vos salles et machines actuelles vers un fichier csv en lançant depuis le répertoire qoq-cot export_salles_to_csv.php > /chemin/vers/mon/fichier.csv
, puis compléter/modifier le fichier pour qu'il reflète l'évolution de vos salles en fonction des dates réelles d'apparition/disparition des machines. Par exemple, si vous aviez seulement les nouvelles machines pour la salle X, apparus le 12/01/2018 lors du renouvellement des anciennes, il vous faut ajouter ces anciennes machines en indiquant leur date d'apparition dans la salle comme date de début et le 12/01/2018 (ou le 11/01/2018, si elle n'ont pas servi le jour du renouvellement) comme date de fin.
Il ne restera ensuite plus qu'à injecter cette réalité dans le Rocky 4 pour qu'il se déchaîne : lancer, toujours depuis le répertoire qoq-cot setup.php /chemin/vers/mon/fichier.csv
C'est terminé, vous avez libéré toute la puissance du Rocky qui trépignait : toutes les évolutions de vos salles seront désormais prises en compte dans les graphes générés, pour des stats toujours plus justes et pertinentes. Gare à l'abus d'orgasmes chez le DSI ou le DGS vieillissant, il peut en mourir. Donc pas plus d'un ou deux graphes Rocky par jour. Nous déclinons toute responsabilité en cas de dépassement de cette posologie max…
And now, ladies and gentlemen, enjoy the legendary QoQ-CoT Rocky 4 power !!