Taille: 5857
Commentaire:
|
Taille: 8522
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 |
Sommaire
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)
Lire ZA/Montréal/Supervision/CentralisationDesLogs et JeanChristopheAndré/Notes/rsyslog
Appliqué : JeanChristopheAndré/Notes/rsyslog
- Ce qui donne comme particularités:
sur les clients un fichier /etc/rsyslog.d/local.conf qu'on créé avec avec l'adresse IP du ct-syslog: 192.168.0.5
- 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
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 (
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