Magouilleuse

De WikiBR

Cette page a pour but de faciliter le travail du magouilleur qui passera une ou deux semaines à La Courtine l'an prochain.

Une bonne connaissance de PHP, MYSQL et un peu de shell sont nécessaires pour ne pas se louper. Un root correct fait l'affaire.

Ne pas oublier d'activer le javascript dans la conf d'apache.

Me contacter à l'adresse qdm@melix.net pour récupérer les fichiers.

Le système est bien rôdé, il se compose de trois parties.

L'interface web de choix des stages

Il s'agit d'un site web simple, en HTML / PHP / Javascript / MySQL. Ça tourne bien et c'est assez sécu.

Il n'accepte pas des choix qui ne répondent pas à des règles prédéfinies, et c'est pas insurmontable d'en rajouter...

Attention à les rajouter dans le javascript ainsi que dans le PHP, pour éviter de se faire niquer par des hackers en herbe...

La Magouilleuse

Il s'agit d'une boîte noire programmée en python. Il faut avoir python 2.7 ainsi que quelques bibliothèques sur son ordinateur. Un fichier README se trouve dans l'archive.

Sur un portable récent (core i7, 4Go de RAM) l'algorithme tourne en moins de deux minutes pour une groupe de 250 personnes.

Une collection de scripts php / bash

Ces scripts sont très utiles pour

  • importer un ficher excel dans la base des utilisateurs (il faut l'enregistrer en .csv avant),
  • initaliser la table des choix/aptitudes
  • importer les aptitudes / inaptitudes de chacun
  • créer le fichier qu'on passe en entrée de la magouilleuse
  • traiter le fichier de sortie de la magouilleuse, produire des statistiques ou un joli .csv

Points importants

Voir avec l'infirmerie longtemps à l'avance pour récupérer les aptitudes de chacun. La nouvelle médecin-chef est souple et compréhensive.

Il faudrait lui donner à l'avance la liste des stages, pour qu'elle sorte un fichier adapté.

Penser à faire souvent des sauvegardes de la base de données, une mauvaise manip et tout fout le camp! Ça m'a servi plus qu'une fois!

Il faut s'y prendre longtemps à l'avance (mois de mai) pour s'assurer que tout tourne bien sur la machine perso du magouilleur.

Organisation physique

Spammer QdM ou Arthur pour avoir des infos.

  • Trois clients (Dell "fin", étiquetés "magouilleuse Client {1|2|3}"), IP = 129.104.201.6{1|2|3}) : Installation d'Archlinux normale. La seule config particulière est deux lignes dans /etc/hosts : {magouilleuse|memorix} 129.104.201.60
  • Deux serveurs (Dell épais, étiquetés "magouilleuse Serveur {master|slave}", IP = 129.104.201.6{0|5}) : En dehors de l'IP et de la réplication mysql (qui n'est configurée que dans le sens master vers slave), les deux installations sont identiques.


Les serveurs ont Apache, mysql, php, phpmyadmin. Les mots de passe sont les habituels (root et mysql). Le site décrit au dessus est installé, ainsi qu'une version spéciale de memorix (pour retirer la possibilité de se connecter et d'ajouter des informations dans la base : c'est un site read-only). Un cron de backup SQL tourne normalement toutes les heures sur les deux serveurs pour faire un dump complet de la base de donnée.


À la courtine il suffit de brancher les cinq PC en RJ45 sur un switch (un de ceux du BJR qui sont au local) et tout tourne. Sur le platal il suffit de brancher les PC sur une prise dans le bataclan et ils ont internet (ils sont config pour utiliser la passerelle du bataclan). "Éventuellement" mettre à jour les PC avant de les embarquer l'année prochaine (ce n'est pas forcément une bonne idée : ça marche comme ça, un an de maj Archlinux c'est beaucoup).


Si le serveur master meure : ne pas se poser trop de questions pour réparer, la base de donnée du slave est normalement parfaitement à jour. Donc éteindre le master et changer le /etc/hosts des trois clients pour mettre {magouilleuse|memorix} 129.104.201.65

itunnel est installé sur le serveur master : si le BRman a un pb à la courtine il peut brancher son iPhone sur le serveur et donner la main à quelqu'un d'autre.