Modifications entre les versions 3 et 4
Version 3 à la date du 2012-07-26 08:09:06
Taille: 6879
Éditeur: WillyManga
Commentaire: important aussi
Version 4 à la date du 2012-07-30 14:46:11
Taille: 7274
Éditeur: WillyManga
Commentaire: sauvegardes
Texte supprimé. Texte ajouté.
Ligne 69: Ligne 69:
 * en fonction du moteur de bases de données prévoir ,si les contraintes sont fortes de faire faire de la réplication.
Ligne 164: Ligne 165:
== Sauvegarde ==

 * '''base de données''' : créer une tâche automatisée qui récuperera les dumps par base et qui seront stockés dans un dossier spécifique
 * ''' autre données ''' tout récupérer (''ainsi que les dumps'') grâce notamment à ''BackupPC''.

Attention

Cette page est une ébauche de documentation, qui pour le moment N'EST PAS UN MODÈLE À SUIVRE à l'AuF

Page dédiée aux explications techniques des hébergements web assurés par l'AUF

Infrastructure

  • /!\ tout serveur web doit être dans un CT car le web est le premier vecteur d'intrusion/attaque et de ce fait ce doit être encadré au maximum

  • filtrage serré dans l'hôte

  • L'installation du serveur physique devrait s'inspirer de Projet/ModèleLucid/ServeurBureautique

  • OpenVZ
    • un CT pour le frontal web
    • un CT pour stocker toutes les bases de données (MySQL ou PostgreSQL par exemple)
    • un CT pour centraliser les logs des conteneurs
    • plusieurs CTs pour les sites à héberger
  • le dossier web par défaut devrait se situer sous /srv

Réseau

Au minimum 2 interfaces réseau.

  • une disposant d'une adresse accessible de l'extérieur 1

  • une autre pouvant faire office de pont pour le réseau privé en 192.168.0.0/24 par exemple
    • tous les CTs devraient disposer d'une adresse dans ce bloc

Parefeu et Filtrage

  • par défaut on bloque tout
  • DNAT depuis l'hôte du port 80 vers le frontal web
  • les conteneurs ne doivent avoir accès à l'extérieur (web sortant) que pour des réseaux bien déterminés

    • les mises à jour debian
    • le réseau du responsable du produit.
      • c'est parfois nécessaire pour le téléchargement de plugins et autres extensions
  • 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

Serveur DNS installé sur l'hôte à usage exclusif par les différents CTs

  • 1 zone privée comme : .openvz

  • résolution de noms externes
  • aucun autre accès autorisé à ce serveur

Messagerie et smarthost

  • exim4 partout où il n'y a pas un service SMTP complet
  • tous les exim4 devrait pointer sur un smarthost

    • typiquement.. tout courriel dans un CT devrait passer par le Exim4 local
  • une suggestion pour les alias de réception d'infos techniques

Conteneur standard

Au minimum il faut disposer des conteneurs suivant

CT base de données

Plusieurs technologies au choix... MySQL , PostreSQL 2

Ce qui compte est de centraliser l'ensemble des bases de données dans un seul conteneur

  • une base de données par conteneur
  • un utilisateur avec les droits les plus spécifiques sur cette base
  • en fonction du moteur de bases de données prévoir ,si les contraintes sont fortes de faire faire de la réplication.

/!\ Planifier des sauvegardes par base qui seront stockées dans un site approprié selon le contexte

CT MySQL

CT PostgreSQL

...

Web frontal

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

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

</VirtualHost>

{i} le ServerAlias peut être utilisé avec profit pour certaines tâches comme lancer des scripts depuis le web frontal qui passeraient par l'interface web d'un conteneur..

CT supervision

Il est préférable qu'il ait un numéro d'ordre (CTID) plus élevé que tous les autres conteneurs

  • 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

Modèles de conteneurs OpenVZ

En fonction des besoins, il faudra disposer de plusieurs templates; certains pouvant dériver d'autres.

Template de base

  • locales
  • vim par défaut :  update-alternatives --config editor

  • Comptes des administrateurs et groupe admin

  • auf-git-etc
  • exim4-daemon-light
    • /etc/mailname à bien paramétrer

    • envoi par un smarthost; pas de courriel en local
  • Exim4 sur les CT et redirection vers un smarthost approprié
  • /etc/resolv.conf : nameserver ip.interface.privée.hôte

  • configurer rsyslog en créant un fichier /etc/rsyslog.d/local.conf  dans lequel on inscrira l'adresse IP du ct-syslog

Template application python

Template application django

Template application php

  • De manière générale il faudra s'assurer que les variables présentes dans /etc/php5/apache2/php.ini conviennent aux besoins.

  • Consulter la documentation Debian et officielle le cas échéant
  • parfois ces modifications sont prises en compte dans la création des virtualHost dans apache

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

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.

Modèles avec debootstrap

Une alternative aux modèles de conteneurs c'est de se servir uniquement de debootstrap. Ce dernier se sert de template avec la liste des paquets à installer.

  • intérêt immédiat: la génération d'un système par ce biais repose sur les derniers paquets disponibles dans les dépôts
  • procédure indépendante d'OpenVZ

Sauvegarde

  • base de données : créer une tâche automatisée qui récuperera les dumps par base et qui seront stockés dans un dossier spécifique

  • autre données tout récupérer (ainsi que les dumps) grâce notamment à BackupPC.


  1. Ce peut être une adresse réellement publique ou même encore privée ;) (1)

  2. ou bien encore d'autres comme MongoDB quoique... ;) (2)

HébergementWeb/SocleTechnique (dernière édition le 2012-08-03 14:06:04 par WillyManga)