Modifications entre les versions 35 et 37 (s'étendant sur 2 versions)
Version 35 à la date du 2017-06-14 20:33:03
Taille: 10567
Commentaire:
Version 37 à la date du 2018-03-01 07:51:29
Taille: 10381
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
## page was renamed from ZEO/Paris/SitesMoodle/MigrationPhysiqueMoodle
#acl GroupeAUF:read,write,delete,admin CédricMusso:read,write
Ligne 5: Ligne 3:
Il est question de déplacer une trentaine de sites sous moodle d'un hébergement mutualisé vers un serveur dédié mieux cloisonné. Il est question de déplacer une trentaine de sites sous Moodle d'un hébergement mutualisé vers un serveur dédié mieux cloisonné.
Ligne 218: Ligne 216:
Voir https://wiki.auf.org/wikiteki/ZEO/Paris/ListeSitesMoodle/Maintenance#Changement_d.27adresse_.28de_domaine.29 Voir [[../Maintenance#Changement_d.27adresse_.28de_domaine.29]]

Il est question de déplacer une trentaine de sites sous Moodle d'un hébergement mutualisé vers un serveur dédié mieux cloisonné.

Infrastructure

  • serveur dédié OVH : ns235989.ovh.net
  • Proxmox 2
  • Les CT sont sur une plage IP 192.168.0.0
  • un CT pour le frontal web (ProxyPass via le module mod_proxy d'apache2)

  • un CT pour MYSQL (mutualise les bases Moodle)
  • un CT pour Syslog (centralise les logs des CT)
  • x CT pour les sites Moodles

Modèles pour les CT

Template de base

  • nom : template1.tar.gz
  • locales
  • vim par défaut :  update-alternatives --config editor

  • Comptes des administrateurs et groupe admin

  • auf-git-etc
  • exim4-daemon-light
    • mailname: fr.refer.org

    • envoi par un smarthost; pas de courriel en local
  • Exim4 sur les CT et redirection vers un smarthost (lequel ???)
  • /etc/resolv.conf : nameserver 192.168.0.1

Template CT-moodle (obsolet)

  • nom template : templace-ct-moodle
    • installation apache2, php5
    • création dossiers /srv/{moodledata,sources,www}

      • moodledata pour les données de la plateforme qui doit appartenir à www-data

      • sources pour le code moodle à utiliser (par défaut)

      • www étant le dossier web pour la plateforme

        • config.php accessible seulement en lecture à www-data

    • réglages vhost

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName xxxx.auf-foad.org
        ServerAlias ct-xxx.openvz #ça peut servir ...

        DocumentRoot /srv/www/moodle-xxxx

        <Directory /srv/www/moodlexxxx>
                Options None
                AllowOverride FileInfo
                Order allow,deny
                allow from All
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/moodle-xxxx_error.log
        Redirect permanent /moodleXXXX http://xxxx.auf-foad.org/

    
    LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/moodle-xxxx_access.log combined
</VirtualHost>
  • dans /etc/crontab l'un des scripts suivants :

    • */5 * * * * www-data /usr/bin/php /srv/www/moodle-xxxx/admin/cron.php 

    • ou */5 * * * * www-data /usr/bin/php /srv/www/moodle-xxxx/admin/cli/cron.php  pour moodle > 2.0

  • dans /etc/php5/apache2/php.ini

    • upload_max_filesize = 100M

Template CT-moodle

Ce template repose sur l'installation du paquet moodle fournit par Debian squeeze, en l'occurence moodle-1.9.9.dfsg2-2.1+squeeze3

  • vérifier adresse de l'interface dans /etc/network/interfaces

  • /etc/dbconfig-common/moodle.conf 

dbc_dbtype='mysql'
dbc_dbuser='xxxx'
dbc_dbpass='xxxx'
dbc_dbserver='ct110.openvz'
dbc_dbname='moodleNOMDUSITE'
dbc_dbadmin='root'
  • exécutez dpkg-reconfigure moodle

    • url du site
    • pas de configuration de la BD (elle est faite manuellement sur le CT-MySQL)

    • garder la version actuellement installée
    • pour apache.vhost.conf, accepter la version du responsable du paquet (ou modifier ultérieurement si nécessaire)

  • faire un lien symbolique pour le vhost sudo ln -s /etc/moodle/apache.vhost.conf /etc/apache2/sites-enabled/moodle-medecine 

    • {i} Afin d'envoyer les logs au CT de supervision, attribuer à la directive ErrorLog la valeur syslog:local7

  • se rassurer que tous les droits sont corrects notamment dans le moodledata qui est /var/lib/moodle

  • pas besoin de cron.. le paquet debian en installe un dans /etc/cron.d/moodle

Template CT-moodle-wheezy

Avex proxmox il n'est pas aisé de configurer les paramètres des CTs en se servant de vzctl . Il est préférable de faire un debootstrap se servant de wheezy et puis archiver le contenu et le stocker dans /var/lib/vz/template/cache avant de continuer.

De là, démarrer une instance qu'on peut configurer en se basant sur ce qui a été fait pour le ct-moodle squeeze.

CT MySQL

  • IP : 192.168.0.10
  • une base de données par moodle
  • un utilisateur avec des droits sur cette base

create database moodleNomDuSite;
grant SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP, INDEX, ALTER ON moodleNomDuSite.* to xxx@ctxxx.openvz IDENTIFIED BY 'xxxxx';

Web frontal

  • IP : 192.168.0.200
  • apache2 avec modules: proxy,proxy_http
  • tous les sites seront sur ce modèle de vhost

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName xxxx.foad-auf.org
        ProxyPass / http://xxxx.foad-auf.org/
        ProxyPassReverse / http://xxxx.foad-auf.org/
        ErrorLog ${APACHE_LOG_DIR}/moodle-xxxx_error.log
        CustomLog ${APACHE_LOG_DIR}/moodle-xxxx_access.log combined

</VirtualHost>
  • dans /etc/hosts une ligne par CT-moodle avec son ip

CT supervision

#emplacement des logs de tous les niveaux de priorité pour la facility 7 
local7.*     /var/log/local7

#envoi des logs en UDP sur le CT de supervision
*.* @ct105.openvz
  • Les extraits importants dans /etc/rsyslog.d/local.conf 

$ModLoad imudp
$UDPServerRun 514

# pour les templates
$template DynFile,"/var/log/host/%fromhost%/all.log"
*.*    ?DynFile

Réseau

  • vmbr0 (adresse publique)
  • vmbr1 (adresse privée) - 192.168.0.0/24
  • DNAT depuis l'hôte du port 80 vers le frontal web

Filtrage

  • Voir préconisation JC
  • Autoriser les Ct-moodle à interroger le web frontal sur http://xxxx.auf-foad.org/ ( pour le cron qui s'éxécute dans chaque CT)

  • Permettre l'accès par ssh aux conteneurs afin de pouvoir éventuellement répartir l'administration technique sans devoir passer par l'hôte

NS

  • /etc/hosts à modifier sur le ct-frontal et sur ct-mysql dans le but de faire la correspondance entre les IP privées et les noms de domaine ( {i} Mettre sur pied un petit serveur DNS dans un CT ?? ) --)

  • Serveur DNS installé sur l'hôte pour les différents CTs. Domaine : .openvz

Mise en place

  • créer au besoin les entrées DNS requises sur le serveur hôte pour le nouveau CT qui accueillira la plateforme moodle
  • copier le dump de la base de données dans le CT dédié à MySQL (ct110.openvz)

  • attribuer les droits nécessaires à l'utilisateur ayant accès
  • créer le CT depuis l'interface de Proxmox en sachant que les id des CTs commencent à 120 en prenant soit un template-debian-squeeze soit un template-debian-wheezy suivant la version de la plateforme à migrer
  • copier le repertoire de données (moodledata) dans le dossier /var/lib/vz/private/CTID/var/lib/moodle du CT correspondant

  • démarrez le CT pour continuer les réglages
  • Ajustez certains fichiers de configuration
    • /etc/dbgconfig-common/moodle.conf

    • dpkg-reconfigure moodle

      • pas de modification de la base de données
      • accepter version du responsable du paquet pour apache.vhost.conf et config.php

    • Vérifier /etc/moodle/apache.vhost.conf et /etc/moodle/config.php

      • /!\ si nécessaire, récupérer la chaine de hachage de l'ancien fichier de configuration et la mettre dans une variable type

      • ex: $CFG->passwordsaltalt1 = 'IO.u86.[L[d},%^8ZXM+2gNKof3]TwI' ;

  • rechargez la configuration du serveur web
  • vérifier au niveau du frontal l'autorisation d'accès à ce CT
  • test depuis l'interface web du site
    • /!\ mise à jour de la base de données le cas échéant à appliquer en suivant la procédure

  • si ok, rentrer en contact avec les responsables de l'espace pour qu'ils valident avant production

Discussions

Versions de Moodle

  • /!\ Certaines fonctions présentes dans les versions de moodle inférieures à 2 ne sont pas compatibles avec la version de php (5.3.3-7+squeeze13) du serveur squeeze

La démarche est la suivante:

  • si la plateforme à déplacer a une version <= 1.9.9 , on utilise le paquet debian squeeze

  • si la plateforme à déplacer a une version > 1.9.9, on utilise le paquet debian wheezy

/!\ Que faire avec les plateformes étant entre la version 1.9 et la version 2.0 ? Le souci étant que pour certaines formations, le passage à la version 2 ne permet plus d'utiliser certaines plugins. De ce fait, il ne serait pas commode de changer de version majeure sans informer les responsables des conséquences.

probleme de liens en dur !

(16:19:24) willy.manga: car tous ont des urls avec l'ancienne URL  http://www.auf-foad.org/moodleCEFEB/xxxx.pdf
(16:19:28) progfou: ok
(16:19:31) progfou: donc
(16:19:36) progfou: on revoit la règle de redirect
(16:20:03) willy.manga: je me suis dit que c'est du au fait que dans l'ancien serveur, le dossier des ressources était au sein du dossier web
(16:20:08) progfou: RedirectMatch permanent (.*) http://moodle1.auf-foad.org/$1
(16:20:17) willy.manga: ce qui est interdit par moodle quand j'ai lu la doc
(16:20:17) progfou: RedirectMatch permanent ^(.*)$ http://moodle1.auf-foad.org/$1
(16:20:39) progfou: en insérant un chemin supplémentaire au besoin
(16:22:54) progfou: ou bien on renvoie carrément vers un traitement spécifique à l'arrivée, par exemple :
RedirectPermanent ^/*$ http://moodle1.auf-foad.org/
RedirectPermanent ^([^/]*\.[^/]*)$ http://moodle1.auf-foad.org/fichiers/$1

Voir ../Maintenance#Changement_d.27adresse_.28de_domaine.29

Les modules non présents dans le paquet debian

Il existe des modules qui ne sont pas fournis par le paquet livré dans debian. Ex: book,choicegroup,dataform, groupselect,questionnaire . Certainement parce qu'ils ne sont pas officiels .

La documentation officielle recommande de les décompresser dans le repertoire mod : http://docs.moodle.org/20/en/Installing_contributed_modules_or_plugins . Ca pourrait être source de soucis lors d'éventuelles mises à jour du système.

ZEO/Paris/SitesMoodle/MigrationPhysique (dernière édition le 2018-03-01 07:51:29 par JeanChristopheAndré)