Création de comptes en masse sous Koxo

Toutes les rentrées, c'est la même rengaine : il faut créer les comptes informatiques pour les nouveaux élèves et profs, déplacer les anciens élèves de classes, et conserver les élèves maintenant partis dans un endroit adéquat...
Pourquoi conserver les anciens élèves ? Car nous leurs avons fournis une adresse mail que nous aimerions leur laisser. Avoir ces élèves dans le LDAP nous permet de nous assurer de ne pas donner un identifiant déjà utilisé à une autre personne... Ce qui serait dramatique (et nous est déjà arrivé !)...

Outil

Nous utilisons un logiciel qui se nomme Koxo Administrator , qui permet la création de comptes, de dossiers, les droits qui vont bien, et des mots de passe facile à retenir.
C'est un très bon logiciel (auquel il manque la partie API de Google Apps malheureusement).

Préparation

Il nous faut une base : un fichier CSV avec tous les renseignements voulus... et travailler un peu les informations brutes, car évidement les logins ne doivent pas avoir d'accents, d'espace, être raccourcis dans certains cas et facile à retenir !
Nous partons sur des logins type : « prenom.nom »

A partir d’une feuille excel fournis par le secrétariat comportant :

  • Nom
  • Prénom
  • Date de naissance
  • Classe

Génération des logins et mails par défaut en utilisant la feuille « Génération des logins.xls »

  1. Compléter la feuille Excel initiale, et vérifier les incohérences.
  2. Enregistrer sous / Fichier CSV

Création des comptes sous Koxo

Il faut utiliser plutôt la synchronisation par CSV pour les changement d’année scolaire  : il déplace les comptes existants, et crée les nouveaux automatiquement.
Pour ne pas supprimer les anciens comptes (nous voulons les conserver) :

  • déplacer les élèves dans un groupe secondaire « Anciens élèves » avant toute opération de synchronisation
  • dans la synchronisation, cocher « Synchronisation non destructive »

Pour tous les utilisateurs, sous Koxo, dans groupe primaire correspondant :

  1. Clic droit : Importer des utilisateurs dans l’arbre (ou synchroniser les groupes secondaires) / À partir d’un fichier CSV
  2. Associer les champs
  3. Vérifier l’association des champs
  4. Suivant
  5. Vérifier les espaces groupes.
  6. Suivant (création des groupes et des utilisateurs)

Générer les étiquettes

En début d'année, idéalement le jour de la rentrée, nous donnons à nos élèves une petite étiquette comportant leur login / mot de passe, et l'adresse du site principal.

Un autre serveur...

Nous avons la bonne idée d'avoir un autre serveur en parallèle qui est censé être dans la même arborescence, et tout partager, mais qui ne le fait pas. Nous devons donc créer manuellement les comptes correspondants aussi dans l'autre serveur.

Sous Koxo du serveur 1

  1. Général / Exporter / Des utilisateurs / Au format CSV
  2. Glisser les classes correspondantes
  3. Exporter avec le modèle « Vraiment complet »
  4. Copier le fichier sur serveur 2

Sous Koxo de serveur 2

  1. Dans groupe primaire correspondant :
  2. Clic droit : Importer des utilisateurs dans l’arbre / À partir d’un fichier CSV
  3. Associer les champs
  4. Vérifier l’association des champs
  5. Suivant
  6. Vérifier les espaces groupes.
  7. Suivant (création des groupes et des utilisateurs)

Création du mail sur Google Apps

Vivement que Koxo intègre cette partie, ça sera vraiment plus simple pour nous... Appel au dev !
Au passage, si comme moi vous en avez besoin, faites leur savoir : c'est l'avantage d'avoir les dev à proximité, ils adaptent leur produit à la demande... mais il faut de la demande !

Sous Koxo du serveur 1 (car il comporte tous les utilisateurs, même ceux du serveur 2)

  1. Général / Exporter / Des utilisateurs / Au format CSV
  2. Glisser les classes correspondantes
  3. Exporter avec le modèle « Vraiment complet »

Réorganiser le fichier avec les entêtes

  • email address
  • first name (=prénom)
  • last name (=nom)
  • password

Générer un fichier CSV :

  • Iso-8859-1
  • séparateur de champs : ,
  • séparateur de texte : “

Sous Google Apps :

  1. Outils avancés
  2. Créer plusieurs utilisateurs
  3. Transfert groupé
  4. Importer et traiter le fichier csv (ne pas modifier le mot de passe des comptes existants)

Un joli affichage pour la page de listing de dossier d’Apache

Selon les restrictions de votre site, lorsque vous arrivez dans un répertoire, Apache peut vous afficher tous les fichiers et dossiers contenus dans ce répertoire.
C'est mon objectif pour monter un petit partage rapide de fichiers...

Mais l'affichage de base est vraiment moche...

L'affichage de base d'Apache
Avec un peu de .htaccess, vous pouvez imposer des fichiers html pour l'entête et la fin de page... et le CSS vous aidera à jouer sur l'apparence de votre page.
Vous ne pourrez pas modifier le contenu du listing, si ce n'est l'ordre d'affichage et la largeur des colonnes (je l'aurais bien francisé... mais j'ai pas trouvé).
Affichage personnalisé

Sécurité

Il est avant tout conseille d'interdire de lister les répertoires d'une manière générale, et de n'autoriser qu'au cas par cas le listing.
Pour interdire globalement sur tout le site, dans le httpd.conf, utiliser par exemple :

Options -Indexes

Et dans chaque répertoire que vous voulez autoriser à lister, créez un fichier .htaccess contenant uniquement :

Options +Indexes

Le mécanisme de base

A la racine du site, créez un fichier .htaccess contenant :

IndexOptions FancyIndexing FoldersFirst SuppressHTMLPreamble
IndexOrderDefault Descending Name
#
# Fichiers header et footer (2 fichiers placés dans la racine du site)
HeaderName /header.html
ReadmeName /footer.html
#
# Fichiers à ignorer dans le listing
IndexIgnore header.html footer.html favicon.ico .htaccess .ftpquota .DS_Store icons *.log *,v *,t .??* *~ *#
#
# Affichage avec des icones personnalisés (placés dans le répertoire /icons_perso à la racine du site)
DefaultIcon /icons_perso/unknown.png
# Répertoire
AddIcon /icons_perso/folder.png ^^DIRECTORY^^
# Parent directory
AddIcon /icons_perso/parent.png ..
# Icones spécifiques aux types de fichiers
AddIcon /icons_perso/text.png .txt
AddIcon /icons_perso/image.png .jpg .jpeg .jpe .png .gif
AddIcon /icons_perso/calendar.png .ics
AddIcon /icons_perso/pdf.png .pdf
AddIcon /icons_perso/zip.png .zip .rar
AddIcon /icons_perso/video.png .mpg .avi
AddIcon /icons_perso/audio.png .mp3 .wav
AddIcon /icons_perso/word.png .doc .docx
AddIcon /icons_perso/excel.png .xls .xlsx
AddIcon /icons_perso/powerpoint.png .ppt .pps .ppsx

Les fichiers sources

À la racine du site, créez les deux fichiers header.html et footer.html, et le répertoire icons_perso avec les fichiers correspondants à l'intérieur.

En ce qui me concerne, voici mon header.html :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr">
 <head>
   <title>R&eacute;pertoire</title>
   <style type="text/css">
body {
 background: #ffffff;
 margin: 33px;
 color: #333;
 font: Arial, Helvetica;
 font-size:0.9em;
 }
h1 {
 font: 1.4em Verdana, Georgia, serif;
 background:url(/logo.png) top left no-repeat;
 line-height:35px;
 padding: 0 0 0 35px;
 }
h1 a:hover, h1 a:active {
 text-decoration: none;
 }
a:link {
 text-decoration: none;
 color: #333;
 }
a:visited {
 text-decoration: none;
 color: #333;
 }
a:hover, a:active {
 text-decoration: underline;
 color: #333;
 }
pre {
 font:  "Courier New", Courier;
 margin: 3px 0;
 color: #333;
 }
pre img {
 display: inline;
 height:16px;
 width:16px;
 }
</style>
   </head>
   <body>
      <h1>Contenu du r&eacute;pertoire</h1>

et mon footer.html :

<pre><em>&copy; &Eacute;cole La Mache</em></pre>
<pre>Contenu r&eacute;serv&eacute; &agrave; l'usage des membres de l'&Eacute;cole La Mache.</pre>
<pre><a href="http://portail.ecolelamache.org/" title="Retour au portail de l'&Eacute;cole La Mache">Retour au portail</a>
</body>
</html>

Upgrading Moodle 2.1 → Moodle 2.3 avec GIT

Je suis resté toute l'année scolaire précédente sur la version 2.1 : je n'ai pas voulu tenter le diable avec la 2.2, déjà que le passage de la 1.9 en 2.1 a perturbé quelques utilisateurs...
Par contre, les nouveautés de la 2.3 soint TRÈS alléchantes... Alors, je profite de cette fin de vacances (ou début d'année scolaire ?) pour faire la mise à jour...

NB : D'après la lecture de la doc, il est nécessaire de passer par une version 2.2 avant de passer en 2.3.
J'en profite pour tester les tâches administratives en ligne de commande !

Vérifications

  1. Vérifiez que votre serveur puisse accueillir la version 2.3 : Administration du site / Serveur / Environnement. S'il ne vous propose pas la vérification pour la version voulue, il le fera après une première mise à jour, il faudra alors retenter le coup plus tard...
  2. Vérifiez que les plugins que vous utilisez soient disponibles ou compatibles avec la version 2.3.

Sécurité avant tout

Effectuez une sauvegarde de votre Moodle.
Il est conseillé de vérifier que votre base est en bon état avant de faire un upgrade.
Passage du site en mode maintenance

cd /var/www/html/moodle
/usr/bin/php admin/cli/maintenance.php --enable

Mise à jour antérieure à l'upgrade

Pour démarrer avec quelque chose de sain...

git pull
/usr/bin/php admin/cli/upgrade.php

Passage de 2.1 en 2.2

Changement de version, puis upgrade.
git branch -a
git checkout -b local_22_STABLE origin/MOODLE_22_STABLE
/usr/bin/php admin/cli/upgrade.php

Le première ligne permet simplement de voir ce qui est disponible, elle est donc facultative.

Passage de 2.2 en 2.3

Même démarche...
git checkout -b local_23_STABLE origin/MOODLE_23_STABLE
/usr/bin/php admin/cli/upgrade.php

Update des plugins

Update des plugins avec une version compatible (dépend de la façon dont vous avez installé les plugins...).

  • soit par GIT, puis visite de la page de notification,
  • soit par upload FTP, puis visite de la page de notification.

Restauration du site

Un petit test du site, du thème... puis retour au mode production.

/usr/bin/php admin/cli/maintenance.php --disable

Au cas où...

Une petite sauvegarde avec un Moodle updaté fonctionnel ?

Sources :
http://docs.moodle.org/23/en/CLI

Réparer la base de donnée Moodle

Au fur et à mesure des updates / upgrades, la base de donnée Moodle a tendance à se perturber...
Deux choses sont à faire après une upgrade importante (changement de version).

Sous Moodle

Des outils de vérification de base sont déjà présents dans Moodle. Allez dans Administration du site / Développement / Expérimental / Éditeur XMLDB
En haut de page vous avez :
  • Vérifier les index
  • Vérifier les valeurs par défaut
  • Vérifier les longs entiers (bigints)
  • Vérifier les clefs extérieures

Ces outils permettent de vérifier des éléments essentiels de la base.

Ils ne font qu'un check et proposent des solutions si nécessaire.

Sous MySQL

Vous pouvez vérifier / réparer les bases, et les optimiser pour gagner en performance avec les commandes :
CHECK TABLE
REPAIR TABLE
OPTIMIZE TABLE
Sur votre serveur; connectez vous à Mysql et sélectionnez la base Moodle :
mysqld
USE moodle
Puis lancer la vérification (et la réparation si nécessaire), puis l'optimisation des tables importantes et sensibles :
CHECK TABLE mdl_course_sections;
CHECK TABLE mdl_forum_posts;
CHECK TABLE mdl_log;
CHECK TABLE mdl_sessions;
CHECK TABLE mdl_backup_controllers;
CHECK TABLE mdl_grade_grades_history;
CHECK TABLE mdl_backup_log;
OPTIMIZE TABLE mdl_course_sections;
OPTIMIZE TABLE mdl_forum_posts;
OPTIMIZE TABLE mdl_log;
OPTIMIZE TABLE mdl_sessions;
OPTIMIZE TABLE mdl_backup_controllers;
OPTIMIZE TABLE mdl_grade_grades_history;
OPTIMIZE TABLE mdl_backup_log;

Il existe une méthode un peu plus brutasse : vérifier et optimiser toutes les tables de la base Moodle...

Dans l'invite de commande, tapez :

mysqlcheck --auto-repair --database moodle
mysqlcheck --optimize --database moodle

Ou alors carrément et monstrueusement brutasse : toues les tables de toutes les bases...

mysqlcheck --auto-repair --all-databases
mysqlcheck --optimize --all-databases

 

Installation de SPIP par Git

Illustration sur un Ubuntu, avec LAMP et Git déjà installés.

Récupération des sources, puis choix de la version.

cd /var/www/
sudo git clone http://git.spip.org/spip.git/
sudo chown -R www-data:www-data spip/
cd spip
sudo git checkout spip-2.1
sudo git pull

Installation du site

  1. Avec un navigateur, se rendre sur la page http://localhost/spip/ecrire
  2. Choix de la langue.
  3. Configuration de la BDD.
  4. Configuration de l'utilisateur de base.

Sources :
http://core.spip.org/projects/spip/wiki/#SPIP-sous-Git-comment-ça-marche-

Canon MP 510 – Erreur 5100

L'erreur 5100 est une erreur relative au chariot, mais pas plus de précisions...
Ça peut être de éléments qui gênent le coulissement, ou des cartouches en mauvais état...
Mais dans les imprimantes Canon, j'ai déjà plusieurs fois été confronté aux réservoirs d'encre trop pleins.

Il faut savoir que, quand elles se rangent, les cartouches vont se poser sur des tampons pour éviter le dessèchement.
Ces tampons servent aussi lorsque les cartouches se nettoyent... De l'encre est craché dessus.
Et au bout d'un moment ces réservoirs débordent, et l'imprimante se met en erreur.

Nettoyer le surplus d'encre

Avec un coton tige ou sopalain, nettoyer les tampons où les cartouches se rangent, et profitez pour faire l'abord. vous pouvez aussi utiliser un dissolvant ou de l'alcool. Évidement, comme vous avez les mains dans la machine, il vaut mieux la débrancher !

Le problème, c'est que si cette première manip permet de vider le surplus, l'électronique a conservé l'état d'erreur... il faut alors lui dire d'oublier.

Remise à zéro

Il faut faire appel au menu constructeur :

  1. Imprimante éteinte
  2. Appuyez et maintenez la touche RESUME (triangle rouge)
  3. Appuyez et maintenez la touche POWER
  4. Relachez la touche RESUME
  5. Appuyez 2 fois sur la touche RESUME (le voyant passe en orange, puis à nouveau en vert)
  6. Relachez la touche POWER
Vous êtes maintenant dans le menu constructeur.
Pour réinitialiser le réservoir :
  1. Appuyez 4 fois sur la touche RESUME
  2. Appuyez sur la touche POWER (pour valider l'action)
That's all, normalement, l'état d'erreur étant réinitialisé et l'imprimante nettoyée, ça devrait aller mieux !

Lancer Google Chrome avec le bon profil utilisateur

Depuis quelques temps, Chrome est capable de gérer plusieurs profils dans une seule session de votre ordinateur. Vous pouvez donc lancer sur même bureau Chrome pour toute la famille, mais avec des paramètres personnalisés et synchronisés pour chacun...

Mise en place (au cas où)

Dans les Préférences de Chrome / Données personnelles / Utilisateurs.
Créez vos utilisateurs, et personnalisez les.

Création des raccourcis

Pour lancer Chrome avec un profil spécifié dès le démarrage, il faut ajouter un argument au raccourcis :

--profile-directory=

Par défaut, Chrome lance :

--profile-directory=Default
Pour lancer les autres profiles, quelques soient leurs noms, il faut utiliser les termes « "Profile 1" » et suivants...
Sous Ubuntu, j'ai donc créé un raccourcis supplémentaire avec un logo compréhensible :
google-chrome --profile-directory="Profile 1"

Je vous laisse adapter pour Windows©® et Mac©®...
Vous trouverez la liste des profiles dans le répertoire 

~/.config/google-chrome/

Mise en place d’un accélérateur php

Moodle étant consommateur en requêtes HTML, il est utile d'ajouter à votre Apache un accélérateur php.
Puisque je suis sous Centos, j'ai opté pour APC.

Installation

Installation des pré-requis :

yum install php-pear
yum install php-devel
yum install httpd-devel

Installation d'APC :

pecl install apc

Ajout d'APC à Apache et redémarrage :

echo "extension=apc.so" > /etc/php.d/apc.ini
service httpd restart

Pour savoir s'il est activé, rendez vous sur votre Moodle / Administration du site / Serveur / Info php, vous devriez trouver un cadre APC.
Bien sûr, pour évaluer l'impact de cette installation, l'idéal est d'avoir une courbe de charge de votre serveur avant / après... en passant par un FAN par exemple.

Sources :
http://docs.moodle.org/23/en/Performance_recommendations#PHP_performance
http://2bits.com/articles/installing-php-apc-gnulinux-centos-5.html