Stabiliser Moodle (et désactiver les cron...) avant un snapshot

Stabiliser Moodle (et désactiver les cron...) avant un snapshot

par Séverin TERRIER,
Nombre de réponses : 4
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour,

Dans notre université, l'infrastructure technique s'appuie sur des machines virtuelles Proxmox. Et les serveurs Moodle utilisent des systèmes d'exploitation GNU/Linux avec des distributions de type Red Hat / CentOS / Rocky Linux.

Nous voulons créer des snapshots de serveurs Moodle en production, pour créer des clones (pour test).
Du coup, pour éviter que des actions soient lancées dès le redémarrage du clone (envoi de courriels...), je souhaite pouvoir, juste avant de lancer l'opération de snapshot et clonage, stabiliser (arrêter) Moodle le plus possible, mais rapidement et simplement.

L'idée est donc de lancer un script en ligne de commande unix qui :
  • activerait le mode de maintenance (facile en ligne de commande, avec admin/cli/maintenance.php)
  • désactiverait la crontab utilisée pour lancer toutes les tâches automatisées de Moodle (cron, tâches ad-hoc, inscriptions automatiques, sauvegardes automatiques...) ; normalement facile, juste en renommant le fichier de l'utilisateur dédié dans /var/spool/cron
  • idéalement s'assurerait que les tâches programmées et tâches ad-hoc soient terminées ; pour cette dernière problématique, je suis plus embêté. Je n'ai pas trouvé de commande permettant de forcer l'arrêt de ces tâches. J'ai bien trouvé MDL-59594 qui permet d'arrêter les tâches relativement proprement. Il faudrait donc que je trouve les pid de ces processus unix, pour les terminer avec un kill ?
    Sinon, a minima attendre une minute ou deux afin de laisser le temps à la plupart de ces éléments de se terminer ?
Et une fois le snapshot généré, on ferait l'inverse pour ces différentes opérations.

Avez-vous des avis, remarques, idées ?

Séverin

Moyenne des évaluations  -
En réponse à Séverin TERRIER

Re: Stabiliser Moodle (et désactiver les cron...) avant un snapshot

par Séverin TERRIER,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Après avoir cherché un peu, je crois que j'ai trouvé comment arrêter les processus souhaités.

Pour voir la liste des processus Moodle lancés en ligne de commande (cron et tâches ad-hoc) :
pgrep -i -l -a -f "/admin/cli/"
Pour demander à "terminer" ces processus, proprement, dès que possible :
pkill -i -f "/admin/cli/"
Séverin
Moyenne des évaluations Utile (2)
En réponse à Séverin TERRIER

Re: Stabiliser Moodle (et désactiver les cron...) avant un snapshot

par Séverin TERRIER,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour,

Attention, sur certains systèmes d'exploitation plus anciens (comme CentOS 7), l'option -i (insensible à la casse) n'est pas disponible, pour pgrep et pkill.

Il suffira donc de la supprimer, n'étant pas nécessaire vu le critère recherché (mais au départ, je cherchais autre chose, qui pouvait contenir des majuscules).

Les lignes peuvent donc être simplifiées en :
pgrep -laf "/admin/cli/"
pkill -f "/admin/cli/"
Séverin
En réponse à Séverin TERRIER

Re: Stabiliser Moodle (et désactiver les cron...) avant un snapshot

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
J'ajouterai une purge des caches… ça mange pas de pain.
php /chemin/moodle/admin/cli/purge_caches.php
Et vous me mettrez bien un petit "kill session" par dessus :
php /chemin/moodle/admin/cli/purge_caches.php
En réponse à Patrick Lemaire

Re: Stabiliser Moodle (et désactiver les cron...) avant un snapshot

par Séverin TERRIER,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Pourquoi pas pour la purge des caches, afin d'être plus propre.

Pour les sessions, je suis plus hésitant : le problème est que cela déconnecterait toutes les personnes qui pourraient être connectées.

Et le but est juste d'avoir un état stable, tout en limitant la durée d'indisponibilité et les conséquences au maximum.

Séverin