Outils pour utilisateurs

Outils du site


migration_karibou

Migration de karibou

Cette page reprend la liste des opérations qui ont été réalisées pour migrer karibou de telnet à telnew. On peut également s'en servir comme d'une documentation générale.

Sources

Les sources disponibles sur les dépos (https://gitorious.org/karibou) pourraient probablement convenir, mais comme le code de karibou est susceptible d'être patché à l'arrache, ce sont les sources backupées qui ont été réutilisées (/home/backupz/abrakadabra/clubs/karibou).

Bases

Bien qu'il y avait 4 bases contenant le nom karibou sur le serveur telnet, seules deux d'entre elles sont nécessaires : karibou_framework et karibou_apps.

:!: Au passage, il y a des chances qu'il faille toucher à la config mysql, dans le fichier website/config.php pour les variables $config['login']['loginBackends'] et $config['bdd'].

PHP

Pendant longtemps on avait cru que karibou tournait avec du php 5.2. Finalement, un jour on s'est rendu compte que le serveur telnet avait du 5.3. Il est plus que probable que la version d'origine soit du 5.2 sans pour autant en être sûr.

Il s'est également révélé qu'avec du php 5.6 il n'y a que quelques patchs à faire pour que cela tourne. En particulier, il a fallu rajouter au fichier website/config.php la ligne

date_default_timezone_set('Europe/Paris');

Compilation

L'interpréteur php a été installé et compilé tel que décrit ici. On notera que les options –with-pdo-mysql et –enable-sockets sont particulièrement importantes.

Bibliothèques

Karibou utilise plusieurs bibliothèques :

  • smarty
  • get_text
  • crypt_rsa

Les deux premières ont été faciles à installer : il suffit de les rendre disponible par rapport au path php. Pour la 3ème, ça a été plus complexe car elle dépend elle-même de la classe BigInteger. Or, la version de l'époque, qui avait été copiée dans l'espoir que ça marche, faisait des execution time out sur les architectures 64 bits. Depuis, la classe BigInteger a été adaptée. Elle a donc été installée depuis ses sources et a fonctionné :

# /opt/php56/bin/pear channel-discover phpseclib.sourceforge.net

Vérification des sources :

# /opt/php56/bin/pear remote-list -c phpseclib

Instalation :

# /opt/php56/bin/pear install phpseclib/Math_BigInteger
# /opt/php56/bin/pear phpseclib/Crypt_RSA

En terme de dépendances, il devrait donc y avoir dans le répertoire /opt/php56/lib/php les dossiers Crypt, Math, smarty et gettext.

Note : gettext peut aussi être mis à disposition de php avec l'option de compilation –with-gettext (dans ce cas il n'y a pas besoin du dossier gettext).

Pantie

Les notifications sur karibou fonctionnent avec un serveur pantie.

Ses sources sont dans tools/pantie-server. Pour le lancer :

# tools/pantie-server/launch_pantie.sh

Cette tâche devrait être automatiquement lancée au démarrage du système.

Pantie est écrit en python, et il dépend du package twisted :

pip install twisted

Problèmes mineurs post-migration

Réseau

Comme karibou n'est plus relié au réseau de l'école, les méthodes d'authentification par kerberos et ldap ne sont plus disponibles et empêchent aux utilisateurs de se connecter. Il faut donc les désactiver en commentant les lignes correspondantes de la variable $config['login']['loginBackends'] du fichier website/config.php.

Potentielles solutions :

  • coder une méthode d'authentification basée sur imap
  • chaque année, importer la liste des nouveaux manuellement

Appli d'authent

Les méthodes d'authentification utilisées par l'appli login et le header de la page ne sont pas les mêmes. Pour une raison inconnue, seule celle du header fonctionne encore.

L'appli login a donc pour l'instant été désactivée des applis par défaut quand le user n'est pas connecté (dans website/config.php).

migration_karibou.txt · Dernière modification: 2017/10/10 11:31 par deldel