Retour : Page Principale > sommaire serveurs & domaines
Procédures et images à ajouter
Voir ça pour les potentielles optimisations : https://opensourceelearning.blogspot.fr/2012/10/why-your-moodle-site-is-slow-five.html
Parler de fail2ban MemoFail2ban
Parler du script de réduction des images https://gist.github.com/kstefanini/4aa6bdf6540152522996dc5611cc877c
Hop ce qui suit est un saut dans le passé, genre 2016-2017 :
L'instance OVH a été supprimée le 5 mars 2019 après un délai suffisant d'un an d'inactivité. Les snapshots ont été conservés.
Les 22€ de l'instance ne seront plus facturés. Les moins de 3€ de snapshots seront encore facturé
On a choisi OVH et son offre de public cloud, voir lĂ : ServeursOVH
Pour démarrer l'instance, on clique le bouton "Ajouter" et on essaie d'obtenir une instance ressemblant à ça :
(WIP, tests de charge en cours, ces caractéristiques ne sont peut-être pas les bonnes)

Il faut également sélectionner le snapshot depuis la sélection de distrib. Histoire de pas se taper la réinstallation à chaque fois. Le snapshot est à entretenir au fur et à mesure des modifs intéressantes. Bien réfléchir avant de l'écraser :)
Le snapshot actuellement contient une copie de l'instance de test qui est sur Sequoia. (11/08/16)
État du serveur : http://mooc.tela-botanica.org/statut/
(login : moodle / mdp de l'utilisateur moodle)
Élasticité est un grand mot dans le sens où on ne peut pas changer à chaud : le changement prend 15 bonnes minutes durant lesquelles le service est interrompu.
Une nouvelle option est apparue peut après la mise en prod du serveur, en bloquant la taille du disque à 50Go (quelque soit le type de serveur) cette option permet de profiter d'une possibilité de downgrade de l'instance. C'est une option à envisager, qui ne nécessite pas forcément une réinstallation complète.
Avantages :
Inconvénients :
Ça coûte 2€ / mois et ça permet de conserver la même IP quand on redémarre / ajuste une instance.
L'IP du serveur OVH-moodle est maintenant :
87.98.164.20
On peut maintenant tranquillement faire pointer un nom de domaine dessus.
Configuration : pour Debian
Une fois que cette config est "snapshottée", l'injection du snapshot dans une nouvelle instance fait que la nouvelle instance obtient la même IP (à moins qu'on ne l'ait pas libérée, si l'ancienne instance tourne encore - penser à ne pas faire ça).
Il faut juste cliquer sur l'IP dans l'interface de gestion d'OVH et l'associer Ă la nouvelle instance.
TODO voir comment configurer le reverse-DNS si besoin (pour les emails ?) => apparemment il y a un bouton magique sur l'interface de gestion OVH.
Dernier snapshot: 2016-08-12
Note: ne pas désactiver mod_status sinon la sonde Munin ne fonctionnera plus.
Notamment, utilisation de mpm_event au lieu de mpm_prefork.
TODO vérifier que mod_deflate fonctionne.
TODO Penser à les lancer lorsque le serveur sera en charge et aura tourné depuis logntemps.
Note : le log des slow_queries et des requêtes n'utilisant pas d'index est activé; penser à le surveiller, et à ajuster les valeurs; vérifier que çane consomme pas trop de performances et d'espace disque.
Le paquet Debian phpmyadmin nécessite PHP5, et l'installation de PHP5 empêche Apache d'utiliser mpm_event.
On a donc téléchargé phpMyAdmin 4.6 dans /home/moodle et créé un lien depuis /var/www/html.
Infos : http://.../info.php
Pour le redémarrer :
Dans /etc/php/7.0/fpm/php.ini :
TODO les tutos sur Moodle parlent d'APC et pas d'APCu; vérifier les réglages et la pertinence d'APCu.
Solution : installer les paquets libwww-perl libdbi-perl libdbd-mysql-perl libgd-gd2-perl libparse-http-useragent-perl
Ce n'est pas la même sonde PHP-FPM que celle qui est installée sur Agathis - TODO vérifier la quelle des deux est la mieux.
Installée dans /usr/share/muin/plugins/php_errors_
Modifiée pour prendre en compte les Exceptions PHP non traitées ("Default exception handler").
Ă€ la ligne write: on peut lire iops=3998 ce qui est potable mais pas bien folichon non plus.
Ă€ titre de comparaison :
Il faut donc aller dans Administration du site > Serveur > Environnement, et installer ce qui manque.
Si cette page ne se charge pas en raison d'une erreur XML, il faut d'abord installer php7.0-xml.
Pour remédier à ce problème il faut lancer en ligne de commande, avec un utilisateur ayant les droits d'écriture (ici www-data) le script de conversion :
Le script indique les tables à migrer. Il faut ensuite l'appeler avec l'option -f pour réparer automatiquement, mais ça ne marche pas car l'utilisateur MySQL défini dans config.php pour se connecter à la base n'a pas de super privilèges. Il faut donc demander au script les requêtes SQL à exécuter...
...pour ensuite les exécuter en root dans MySQL :
Google : https://console.developers.google.com/apis/credentials/oauthclient/904626564271-68ngejvgfuvpb79di9fs7iidmqdadjbj.apps.googleusercontent.com?project=api-project-904626564271 (telabotanica)
Facebook : https://developers.facebook.com/apps/1372971312729108 (webmestre@)
Note 2 : en utilisant la méthode "magique" de changement de type d'instance, l'IP changeante est également conservée.
Si on utilise MariaDB, régler le driver de BD sur "mariadb" et non "mysqli" pour éviter un problème (mineur) de numéro de version dans le vérificateur d'environnement.
i le nom de domaine mooc.tela-botanica.org pointe vers un autre serveur (par ex. Sequoia), et que c'est ce dernier qui redirige les requĂŞtes vers l'IP d'OVH, alors il faut changer la redirection pour y associer la nouvelle IP.
Éditer le .htaccess à la racine du domaine pointé par mooc.tela-botanica.org et y placer ces lignes (exemple pour la plateforme de test) :
Utiliser l'outil "rechercher-remplacer" situé à l'adresse admin/tool/replace/index.php, et remplacer http://ancienne-ip-ou-ancien-nom## par http://nouvelle-ip-ou-nouveau-nom##.
Il faut donc se rendre sur https://www.google.com/recaptcha/admin (login: telabotanica) et ajouter la nouvelle IP au compte :
Note: si on ne fait pas cette démarche, on ne peut plus créer de compte sur Moodle. Il faut alors désactiver le captcha lors de l'inscription, mais ce n'est pas une bonne idée du tout !
Note 2 : au moment de la création d'un compte sur Moodle, lorsque le captcha ne marche pas, Moodle dit que c'est le mot de passe qui pose problème alors qu'en fait non, c'est le captcha.
Pour que ça marche, il faut :
Note: grâce à l'IP failover, cela n'est normalement plus nécessaire.
[Moodle]
Pareil avec le plugin ip_ de munin:
http://wiki.kogite.fr/index.php/Munin-node_activation_plugins#Plugins_ip_.2A
Détails de la conf du plugin php
http://www.mon-code.net/article/13/plugin-pour-monitorer-les-erreurs-php-avec-munin
Contenu au 2016-08-10 :
L'adapter au contexte en changeant le répertoire des bases MySQL, le chemin de mysqldump et le mot de passe administrateur.
Penser à régler le mot de passe par défaut de l'administrateur de MySQL dans /root/.my.cnf.
Contenu au 2016-08-10 :
Modifier le script pour faire apparaître un compte utilisateur par ligne, et la liste des bases à sauvegarder pour chacun d'entre-eux.
Lui donner des droits d'exécution : chmod +x mysqlbackup
Contenu au 2016-08-10 :
Récupérer le script ndistbackup depuis Agathis ou Sequoia et le coller dans /etc/cron.daily
Modifier le script pour sauvegarder /etc et les comptes utilisateurs souhaités, modifier le nom du serveur, l'expéditeur de l'email, etc.
Lui donner des droits d'exécution : chmod +x ndistbackup
Contenu au 2016-08-10 :
Et voili !
Instance Moodle chez Gandi
Procédures et images à ajouter
Voir ça pour les potentielles optimisations : https://opensourceelearning.blogspot.fr/2012/10/why-your-moodle-site-is-slow-five.html
Parler de fail2ban MemoFail2ban
Parler du script de réduction des images https://gist.github.com/kstefanini/4aa6bdf6540152522996dc5611cc877c
Hop ce qui suit est un saut dans le passé, genre 2016-2017 :
Instance Moodle chez OVH
L'instance OVH a été supprimée le 5 mars 2019 après un délai suffisant d'un an d'inactivité. Les snapshots ont été conservés.
Les 22€ de l'instance ne seront plus facturés. Les moins de 3€ de snapshots seront encore facturé
On a choisi OVH et son offre de public cloud, voir lĂ : ServeursOVH
Pour démarrer l'instance, on clique le bouton "Ajouter" et on essaie d'obtenir une instance ressemblant à ça :
(WIP, tests de charge en cours, ces caractéristiques ne sont peut-être pas les bonnes)

Il faut également sélectionner le snapshot depuis la sélection de distrib. Histoire de pas se taper la réinstallation à chaque fois. Le snapshot est à entretenir au fur et à mesure des modifs intéressantes. Bien réfléchir avant de l'écraser :)
Le snapshot actuellement contient une copie de l'instance de test qui est sur Sequoia. (11/08/16)
État du serveur : http://mooc.tela-botanica.org/statut/
(login : moodle / mdp de l'utilisateur moodle)
Élasticité de l'instance
Un des intérêts d'utiliser une instance de serveur virtuel, c'est que c'est "élastique" : si on a besoin de plus ou moins de puissance, on change les caractéristiques de l'instance et on paye en fonction.Élasticité est un grand mot dans le sens où on ne peut pas changer à chaud : le changement prend 15 bonnes minutes durant lesquelles le service est interrompu.
Une nouvelle option est apparue peut après la mise en prod du serveur, en bloquant la taille du disque à 50Go (quelque soit le type de serveur) cette option permet de profiter d'une possibilité de downgrade de l'instance. C'est une option à envisager, qui ne nécessite pas forcément une réinstallation complète.
Comment modifier une instance
Méthode magique
Il s'agit de modifier les caractéristiques d'une instance en cours de fonctionnement. Pour ce faire, cliquer sur la petite flèche en haut à droite de l'instance, choisir "modifier le type de serveur", changer de modèle et go.Avantages :
- ça conserve les données dans l'état où on les a laissées, au lieu de réinjecter le dernier snapshot
- l'adresse IP est conservée
- ça demande moins de clics que la procédure "pas magique" ci-dessous
- on ne peut pas injecter dans une instance N un snapshot réalisé depuis une instance V si la taille totale du disque dur de V était plus importante que celle du disque dur de N, en d'autres termes ON NE PEUT PAS RÉTROGRADER en termes de taille de disque ! Faire très attention à ça, toujours travailler sur une instance ayant le plus petit disque possible !
Méthode pas magique
Il s'agit de supprimer l'instance, et en recréer une autre en injectant le snapshot précédemment réalisé sur l'instance d'avant.Inconvénients :
- l'IP change; même avec l'IP Failover, cela pose des problèmes : le serveur est vu par l'extérieur avec son IP changeante et non l'IP Failover (question posée sur le forum OVH - pas de réponse) - se reporter aux chapitres "Accès et IP changeante" et "Trucs à changer lorsqu'on redémarre l'instance (nouvelle IP)"
- on ne peut pas injecter dans une instance N un snapshot réalisé depuis une instance V si la taille totale du disque dur de V était plus importante que celle du disque dur de N
- aucun ? TODO vérifier
Ă€ savoir lorsqu'on change une instance
Toujours faire un snapshot avant, on ne sait jamais ce qui peut se passer (voir problèmes de taille de disque, ci-dessus).Accès et IP changeante
nouvelle méthode
OVH propose des IP "failover" : en gros c'est une IP fixe qu'on peut router vers une instance (serveur virtuel) ou une autre en un clic depuis l'interface de gestion d'OVH.Ça coûte 2€ / mois et ça permet de conserver la même IP quand on redémarre / ajuste une instance.
L'IP du serveur OVH-moodle est maintenant :
87.98.164.20
On peut maintenant tranquillement faire pointer un nom de domaine dessus.
Configuration : pour Debian
Une fois que cette config est "snapshottée", l'injection du snapshot dans une nouvelle instance fait que la nouvelle instance obtient la même IP (à moins qu'on ne l'ait pas libérée, si l'ancienne instance tourne encore - penser à ne pas faire ça).
Il faut juste cliquer sur l'IP dans l'interface de gestion d'OVH et l'associer Ă la nouvelle instance.
TODO voir comment configurer le reverse-DNS si besoin (pour les emails ?) => apparemment il y a un bouton magique sur l'interface de gestion OVH.
Logiciels installés
Dernière mise à jour: 2016-08-12Dernier snapshot: 2016-08-12
apache2
Configuration en accord avec- http://www.iteachwithmoodle.com/2014/01/20/optimizing-a-moodle-server-step-1-fine-tune-apache
- https://docs.moodle.org/30/en/Performance_recommendations#Apache_performance
- http://serverfault.com/questions/383526/how-do-i-select-which-apache-mpm-to-use
Note: ne pas désactiver mod_status sinon la sonde Munin ne fonctionnera plus.
Notamment, utilisation de mpm_event au lieu de mpm_prefork.
TODO vérifier que mod_deflate fonctionne.
mariadb-server-10.0
Configuration en accord avec :- http://www.iteachwithmoodle.com/2014/01/21/how-to-optimize-a-moodle-server-part-2-mysql
- https://mariadb.com/kb/en/mariadb/configuring-mariadb-for-optimal-performance
Outils d'aide Ă la configuration
Les outils mysqltuner.pl (ce bon vieux Major Hayden) et tuning-primer.sh sont installés dans /root.TODO Penser à les lancer lorsque le serveur sera en charge et aura tourné depuis logntemps.
Note : le log des slow_queries et des requêtes n'utilisant pas d'index est activé; penser à le surveiller, et à ajuster les valeurs; vérifier que çane consomme pas trop de performances et d'espace disque.
slow_query_log_file = /var/log/mysql/mysql-slow.log slow_query_log = 1 long_query_time = 5 log_queries_not_using_indexes
phpMyAdmin
http://ovh.tela-botanica.org/phpmyadmin/Le paquet Debian phpmyadmin nécessite PHP5, et l'installation de PHP5 empêche Apache d'utiliser mpm_event.
On a donc téléchargé phpMyAdmin 4.6 dans /home/moodle et créé un lien depuis /var/www/html.
php7.0-fpm
Installé en remplacement de libapache2-mod-php7.0Infos : http://.../info.php
Pour le redémarrer :
service php7.0-fpm restart
php7.0-opcache
Mémoire augmentée à 256 Mio car les 64 Mio par défaut étaient remplis à 100%.Dans /etc/php/7.0/fpm/php.ini :
opcache.memory_consumption=256
php7.0-apcu
TODO vérifier que c'est plus rapide avec APCu, je suis pas certain.TODO les tutos sur Moodle parlent d'APC et pas d'APCu; vérifier les réglages et la pertinence d'APCu.
opcache-gui
Installé dans http://.../opcache-guimunin
http://munin.agathis.tela-botanica.net/Moodle/index.htmlSonde Apache2
Ne fonctionnait pas de base en raison d'une absence d'un module Perl : LWP:: UserAgentSolution : installer les paquets libwww-perl libdbi-perl libdbd-mysql-perl libgd-gd2-perl libparse-http-useragent-perl
Sonde PHP-FPM
Installation de https://github.com/tjstein/php5-fpm-munin-plugins dans /usr/share/munin/plugins en suivant le tuto - ça a l'air de marcher avec PHP 7.Ce n'est pas la même sonde PHP-FPM que celle qui est installée sur Agathis - TODO vérifier la quelle des deux est la mieux.
Sonde php_errors_
Écrite par... Raphaël Droz => WTF ?Installée dans /usr/share/muin/plugins/php_errors_
Modifiée pour prendre en compte les Exceptions PHP non traitées ("Default exception handler").
fio
Ce machin sert à benchmarker les i/o. Voici ce que ça donne (pâté ci-dessous).À la ligne write: on peut lire iops=3998 ce qui est potable mais pas bien folichon non plus.
Ă€ titre de comparaison :
- sur Osyris on est à 86 737 (!! disques SAS 15 000 tours + RAID 1 matériel - étonnant d'avoir des perfs aussi immenses sans SSD, dû au cache de la carte RAID ?)
- sur mon PC dans /home on est Ă 964 (SATA3 10 000 trs/mn).
- sur mon PC dans /tmp on est Ă 24 119 (SSD).
root@moodle:~# fio --name=rand-write --ioengine=libaio --iodepth=32 --rw=randwrite --invalidate=1 --bsrange=4k:4k,4k:4k --size=512m --runtime=120 --time_based --do_verify=1 --direct=1 --group_reporting --numjobs=1
rand-write: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=32
fio-2.1.11
Starting 1 process
rand-write: Laying out IO file(s) (1 file(s) / 512MB)
Jobs: 1 (f=1): [w(1)] [100.0% done] [0KB/15988KB/0KB /s] [0/3997/0 iops] [eta 00m:00s]
rand-write: (groupid=0, jobs=1): err= 0: pid=8727: Tue Aug 9 15:24:08 2016
write: io=1874.3MB, bw=15993KB/s, iops=3998, runt=120008msec
slat (usec): min=1, max=18380, avg=15.81, stdev=55.16
clat (usec): min=89, max=93796, avg=7984.42, stdev=988.01
lat (usec): min=118, max=93808, avg=8000.66, stdev=986.97
clat percentiles (usec):
| 1.00th=[ 5664], 5.00th=[ 7840], 10.00th=[ 7904], 20.00th=[ 7968],
| 30.00th=[ 7968], 40.00th=[ 7968], 50.00th=[ 7968], 60.00th=[ 7968],
| 70.00th=[ 8032], 80.00th=[ 8032], 90.00th=[ 8032], 95.00th=[ 8096],
| 99.00th=[10304], 99.50th=[11456], 99.90th=[14912], 99.95th=[19072],
| 99.99th=[26240]
bw (KB /s): min=13600, max=18920, per=100.00%, avg=15997.41, stdev=252.06
lat (usec) : 100=0.01%, 250=0.04%, 500=0.01%, 750=0.01%, 1000=0.01%
lat (msec) : 2=0.04%, 4=0.35%, 10=98.40%, 20=1.10%, 50=0.04%
lat (msec) : 100=0.01%
cpu : usr=2.58%, sys=7.21%, ctx=465236, majf=0, minf=8
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=100.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.1%, 64=0.0%, >=64=0.0%
issued : total=r=0/w=479814/d=0, short=r=0/w=0/d=0
latency : target=0, window=0, percentile=100.00%, depth=32
Run status group 0 (all jobs):
WRITE: io=1874.3MB, aggrb=15992KB/s, minb=15992KB/s, maxb=15992KB/s, mint=120008msec, maxt=120008msec
Disk stats (read/write):
vda: ios=0/481938, merge=0/288, ticks=0/3819328, in_queue=3819212, util=99.97%
Trucs Ă changer lorsqu'on migre Moodle
bibliothèques PHP
Lors d'une migration sur une nouvelle machine, on ne passe pas par la phase de vérification de l'environnement qui est normalement effectuée par Moodle au moment de l'installation.Il faut donc aller dans Administration du site > Serveur > Environnement, et installer ce qui manque.
Si cette page ne se charge pas en raison d'une erreur XML, il faut d'abord installer php7.0-xml.
mettre à jour la base de données
Le vérificateur d'environnement (voir "bibliothèques PHP ci-dessus) peut aussi avertir que le format de tables InnoDb est "Antelope" au lieu de "Barracuda".Pour remédier à ce problème il faut lancer en ligne de commande, avec un utilisateur ayant les droits d'écriture (ici www-data) le script de conversion :
su - www-data -s /bin/bash php admin/cli/mysql_compressed_rows.php -l
Le script indique les tables à migrer. Il faut ensuite l'appeler avec l'option -f pour réparer automatiquement, mais ça ne marche pas car l'utilisateur MySQL défini dans config.php pour se connecter à la base n'a pas de super privilèges. Il faut donc demander au script les requêtes SQL à exécuter...
php admin/cli/mysql_compressed_rows.php --showsql
...pour ensuite les exécuter en root dans MySQL :
mysql -u root -p [copier-coller les requĂŞtes]
autorisations oAuth Facebook et Google
Si le nom de domaine de Moodle change (ou qu'on y accède directement avec son IP), il faut ajouter des autorisations dans les tableaux de bord de Facebook et Google+ pour que le login oAuth sur Moodle à partir de ces services continue de fonctionner.Google : https://console.developers.google.com/apis/credentials/oauthclient/904626564271-68ngejvgfuvpb79di9fs7iidmqdadjbj.apps.googleusercontent.com?project=api-project-904626564271 (telabotanica)
Facebook : https://developers.facebook.com/apps/1372971312729108 (webmestre@)
Trucs à changer lorsqu'on redémarre l'instance (nouvelle IP)
Note : si on arrive à configurer l'IP failover comme étant celle avec lequel le serveur s'identifie à l'extérieur, on n'aura plus à faire tout ce b*rdel.Note 2 : en utilisant la méthode "magique" de changement de type d'instance, l'IP changeante est également conservée.
config.php
Une fois l'instance lancée à partir du snapshot, il faut aller modifier le fichier config.php de Moodle pour y changer la valeur wwwroot, qui doit contenir l'ip de l'instance actuelle. Exemple :$CFG->wwwroot = 'http://149.202.186.116/moodle-test';
Si on utilise MariaDB, régler le driver de BD sur "mariadb" et non "mysqli" pour éviter un problème (mineur) de numéro de version dans le vérificateur d'environnement.
redirection du nom de domaine
Note : plus besoin maintenant qu'on a des noms ("mooc." et "ovh.") qui pointent directement dessus.i le nom de domaine mooc.tela-botanica.org pointe vers un autre serveur (par ex. Sequoia), et que c'est ce dernier qui redirige les requĂŞtes vers l'IP d'OVH, alors il faut changer la redirection pour y associer la nouvelle IP.
Éditer le .htaccess à la racine du domaine pointé par mooc.tela-botanica.org et y placer ces lignes (exemple pour la plateforme de test) :
Redirect /moodle-test http://[IP OVH]/moodle-test
mettre à jour la base de données
Plusieurs valeurs stockées dans la base de données de Moodle mentionnent l'adresse "wwwroot" du site; lors d'une migration il faut donc mettre à jour ces valeurs (comme indiqué dans la procédure de migration mentionnée ici).Utiliser l'outil "rechercher-remplacer" situé à l'adresse admin/tool/replace/index.php, et remplacer http://ancienne-ip-ou-ancien-nom## par http://nouvelle-ip-ou-nouveau-nom##.
Google reCAPTCHA
Pour que le service reCAPTCHA de Google fonctionne, il faut que l'IP ou le domaine de chaque site l'utilisant soit déclaré.Il faut donc se rendre sur https://www.google.com/recaptcha/admin (login: telabotanica) et ajouter la nouvelle IP au compte :
- cliquer sur le compte concerné (Plateforme MOOC - Moodle)
- en bas, dans "paramètres de la clé", ajouter une ligne avec l'IP
- cliquer sur "enregistrer les modifications" => il est possible de devoir attendre max. 30 minutes que ça se propage
Note: si on ne fait pas cette démarche, on ne peut plus créer de compte sur Moodle. Il faut alors désactiver le captcha lors de l'inscription, mais ce n'est pas une bonne idée du tout !
Note 2 : au moment de la création d'un compte sur Moodle, lorsque le captcha ne marche pas, Moodle dit que c'est le mot de passe qui pose problème alors qu'en fait non, c'est le captcha.
VPN SupAgro
S'assurer qu' OpenVPN est bien installé et configuré, sans quoi les autres serveurs TB ne pourront pas être contactés par l'instance Moodle (voir point annuaire, ci-dessous).connexion à l'annuaire de TB
Une des méthodes d'authentification sur Moodle est l'annuaire de TB : un plugin se connecte à Agathis pour essayer d'authentifier les utilisateurs.Pour que ça marche, il faut :
- sur le MySQL d'Agathis, autoriser l'IP de Moodle Ă se connecter : GRANT des droits sur tela_prod_v4.annuaire_tela Ă l'utilisateur 'apitela'@'ipovh'
GRANT SELECT ON tela_prod_v4.annuaire_tela TO 'apitela'@'149.202.178.169' IDENTIFIED BY 'mettreicilemotdepasse';
- dans le firewall d'Agathis - /etc/shorewall/rules , autoriser l'IP de Moodle en entrée sur le port 3306 tcp
ACCEPT net:[IP OVH] $FW tcp 3306
Munin
Faut aussi aller rebrancher Munin coté Agathis dans /etc/munin/munin.conf :Note: grâce à l'IP failover, cela n'est normalement plus nécessaire.
[Moodle]
- address 149.202.186.116
- use_node_name yes
Pareil avec le plugin ip_ de munin:
http://wiki.kogite.fr/index.php/Munin-node_activation_plugins#Plugins_ip_.2A
Détails de la conf du plugin php
http://www.mon-code.net/article/13/plugin-pour-monitorer-les-erreurs-php-avec-munin
Sauvegarde
Principe calqué sur celui-ci : http://www.tela-botanica.org/wikini/DevInformatiques/wakka.php?wiki=SecuriteSauvegarde#sdcds0. préparer Adansonia
Créer un dossier /home/ovh-moodle1. SSH et clefs RSA
- sur moodle-ovh :
- créer une paire de clefs RSA pour l'utilisateur backup (existe par défaut dans le système)
- su - backup -s /bin/bash
- mkdir .ssh (au cas où le dossier n'existe pas déjà - dépend des versions de Debian apparemment)
- chown backup:backup .ssh
- chmod 700 .ssh
- ssh-keygen -t rsa -N ""
- sur Adansonia :
- éditer /var/backups/.ssh/authorized_keys et rajouter une ligne contenant la valeur de la clef publique créée sur moodle-ovh (qui se trouve dans /var/backups/.ssh/id_rsa.pub)
- re-sur moodle-ovh :
- essayer de se connecter en SSH, qui ne doit maintenant plus demander de mot de passe !
- ssh backup@tela-botanica.no-ip.org (la première fois, répondre "yes")
- ajouter ces lignes dans /etc/ssh/ssh_config :
-
Host tela-botanica.no-ip.org CheckHostIP no
-
- essayer de se connecter en SSH, qui ne doit maintenant plus demander de mot de passe !
2. script de sauvegarde rsync
Récupérer le script backup_dist depuis Agathis ou Sequoia et le coller dans /usr/local/sbin.Contenu au 2016-08-10 :
#!/bin/bash source=$1 # on utilise no-ip.org car l'adresse externe de Numerdicable change de temps a autres destination=backup@tela-botanica.no-ip.org:/home/ovh-moodle/ rsync -auR --stats --exclude *tmp* -e 'ssh -i /var/backups/.ssh/id_rsa' --delete $source $destination | head -n 3 >> $2
3. script de sauvegarde MySQL
Récupérer le script backup_mysql depuis Agathis ou Sequoia et le coller dans /usr/local/sbinL'adapter au contexte en changeant le répertoire des bases MySQL, le chemin de mysqldump et le mot de passe administrateur.
Penser à régler le mot de passe par défaut de l'administrateur de MySQL dans /root/.my.cnf.
Contenu au 2016-08-10 :
#/bin/bash
# Sauvegarde base de donnee dans /home/utilisateur/bases sur 5 jours ...
# Mai 2004 David Delon Inspiration Faq ovh
# Parametres :
# $1 utilisateur
# $2 base (ou liste de bases)
# Le mot de passe de l'administrateur des bases de données est present dans : /root/.my.cnf
user=$1
mkdir -p /home/$user/bases/tmp 2>/dev/null
cd /home/$user/bases;
shift
for base in $*
do
touch tmp/$base.sql
# Vérification de l'existence de la base
if [ -d /var/lib/mysql/$base ] ; then
mysqldump --add-drop-table -u root $base -f > tmp/$base.sql;
fi
done
# Suppression de tous les fichiers sql du dossier tmp
/tar zcf bases-$(date -I).tar.gz tmp/*.sql --remove-files
# Suppression des sauvegardes de plus de 5 jours
/find /home/$user/bases/bases*.gz -mtime +5 -exec /bin/rm -f {} \;
# Attribution du bon utilisateur Ă tout le contenu du dossier bases
cd /home/$user
chown $user:$user -R bases
4. le CRON qui dit "non"
Récupérer le script mysqlbackup depuis Agathis ou Sequoia et le coller dans /etc/cron.dailyModifier le script pour faire apparaître un compte utilisateur par ligne, et la liste des bases à sauvegarder pour chacun d'entre-eux.
Lui donner des droits d'exécution : chmod +x mysqlbackup
Contenu au 2016-08-10 :
#!/bin/bash /usr/local/sbin/backup_mysql moodle moodle
Récupérer le script ndistbackup depuis Agathis ou Sequoia et le coller dans /etc/cron.daily
Modifier le script pour sauvegarder /etc et les comptes utilisateurs souhaités, modifier le nom du serveur, l'expéditeur de l'email, etc.
Lui donner des droits d'exécution : chmod +x ndistbackup
Contenu au 2016-08-10 :
#!/bin/bash date=`date +"%F"` log="/tmp/sauve_distant_"$date".log" debut=`date +"%c"` echo "------------------------------------------------------------------------" >> $log echo "Place disponible sur les disques de OVH-moodle :" >> $log df -h >> $log echo "------------------------------------------------------------------------" >> $log echo "Debut sauvegarde distante OVH-moodle : $debut" >> $log echo "------------------------------------------------------------------------" >> $log echo "Sauvegarde /etc :" >> $log /usr/local/sbin/backup_dist /etc $log echo "------------------------------------------------------------------------" >> $log echo "Sauvegarde /home/moodle :" >> $log /usr/local/sbin/backup_dist /home/moodle $log echo "------------------------------------------------------------------------" >> $log fin=`date +"%c"` echo "Fin sauvegarde distante OVH-moodle $fin" >> $log echo "------------------------------------------------------------------------" >> $log ( echo "From: Root OVH-moodle <root@mooc.tela-botanica.org>"; echo "To: dev-log@tela-botanica.org "; echo "Subject: Sauvegarde rapport OVH-moodle du $date"; echo "MIME-Version: 1.0"; echo "Content-Type: text/html; charset=UTF-8"; echo "Content-Disposition: inline"; echo "<html>"; echo "<body>"; echo "<pre style="font: monospace">"; cat $log echo "</pre>"; echo "</body>"; echo "</html>"; ) | /usr/sbin/sendmail -t rm -f $log
5. test
Pour vérifier que tout marche bien :- lancer en root /etc/cron.daily/mysqlbackup et vérifier que les bases sont bien sauvegardées, par exemple dans /home/moodle/bases
- lancer en root /etc/cron.daily/ndistbackup et vérifier sur Adansonia que le répertoire /home/ovh-moodle contient bien des données
Et voili !