Modifications entre les versions 26 et 27
Version 26 à la date du 2012-07-02 17:21:17
Taille: 5857
Éditeur: WillyManga
Commentaire:
Version 27 à la date du 2012-07-03 11:44:59
Taille: 8522
Éditeur: WillyManga
Commentaire: templates mieux réglés et procédure de mise en place
Texte supprimé. Texte ajouté.
Ligne 21: Ligne 21:
Ligne 33: Ligne 34:
==== Template CT-moodle ==== ==== Template CT-moodle (obsolet) ====
Ligne 73: Ligne 74:
==== 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 `
 * 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`
Ligne 74: Ligne 97:

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.
Ligne 117: Ligne 144:
== 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
 * /!\ si nécessaire, récupérer la chaine de hachage de l'ancien fichier de configuration et la mettre dans une variable type
   $CFG->passwordsaltalt1 = 'IO.u86.[L[d},`%^8ZXM+2gNKof3]T`wI';
 * vérifier au niveau du frontal l'autorisation d'accès à ce CT
 * Ajustez certains fichiers de configuration
  * `/etc/dbgconfig-common/moodle.conf`
  * `/etc/moodle/apache.vhost.conf`
  * `/etc/moodle/config.php`
 * rechargez la configuration du serveur web
 * 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

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

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 

  • 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

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
  • /!\ si nécessaire, récupérer la chaine de hachage de l'ancien fichier de configuration et la mettre dans une variable type

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

  • vérifier au niveau du frontal l'autorisation d'accès à ce CT
  • Ajustez certains fichiers de configuration
    • /etc/dbgconfig-common/moodle.conf

    • /etc/moodle/apache.vhost.conf

    • /etc/moodle/config.php

  • rechargez la configuration du serveur web
  • 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

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

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