Modifications entre les versions 8 et 9
Version 8 à la date du 2009-02-04 15:32:22
Taille: 8941
Éditeur: FranckKouyami
Commentaire:
Version 9 à la date du 2009-02-04 15:35:20
Taille: 8917
Éditeur: FranckKouyami
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 5: Ligne 5:

= Sur le serveur =
Ligne 167: Ligne 165:
== Todo list == = Todo list =

Virtualisation de serveur

L'arrivée du nouveau serveur m'a permis de passer avec l'aide de Stéphanie Glèlè (Stagiaire au CNF de Cotonou), à la mise en place d'OpenVZ ainsi qu'à l'automatisation de certaines tâches (le plus possible). Les avancées sont à suivre ici à la semaine près :-D.

Initialisation

  • Installer openvz
  • Faire un template
  • Mettre à jour les paramêtres

Plan d'adressage

Changement d'adresses

nfs-cotonou passe de 81.91.236.4 à 81.91.236.14

OpenVZ devient 81.91.236.3

Nouvelles entrées

Service

Ancien FQDN

Ancien IP hôte

Nouveau FQDN

Nouvel IP

Remarques ???

DNS

ns.bj.refer.org

81.91.236.2 (sur mail-cotonou)

ns.bj.refer.org

81.91.236.2

Reste sur son serveur actuel en attendant

Proxy squid

cnfc.bj.refer.org

81.91.236.4 (sur nfs-cotonou)

proxy.bj.refer.org

81.91.236.4

Openvz

mail

mx.bj.refer.org

81.91.236.2 (sur mail-cotonou)

mail-cotonou.bj.refer.org

81.91.236.2

Reste sur son serveur actuel en attendant

Hébergement cnfc

bj.refer.org

81.91.236.2 (sur mail-cotonou)

web.bj.refer.org

81.91.236.6

Openvz

Hébergement partenaire

*.bj.refer.org

81.91.236.2 (sur mail-cotonou)

friends.bj.refer.org

81.91.236.7

Openvz

Hébergement temporaire

temporaire.bj.refer.org

81.91.236.2 (sur mail-cotonou)

temp.bj.refer.org

81.91.236.8

Openvz

Mysql

bj.refer.org

81.91.236.2 (sur mail-cotonou)

mysql.bj.refer.org

81.91.236.9

Openvz

Mysql test

bj.refer.org

81.91.236.2 (sur mail-cotonou)

mysql-test.bj.refer.org

81.91.236.10

Openvz

Voip

voip.bj.refer.org

81.91.236.1 (nat sur le serveur interne)

voip.bj.refer.org

81.91.236.11

Openvz

Mirroir débian/Ubuntu

debian/ubuntu.bj.refer.org

81.91.236.4 (sur nfs-cotonou)

debian/ubuntu.bj.refer.org

81.91.236.13

Openvz

Spécificités du CNFC

Espace disque

On a décidé de créer un volume logique pour chaque VE. Ensuite; cela permet de contrôler l'espace en plus des options internes d'OpenVZ.Donc pour ce faire on a du lvm sur du raid1 (question de redondance imédiate) sur les deux disques durs de la machine. On crée tous les lv dans le VG sys en attendant d'avoir les nouveaux disques pour séparer plus finement la configuration.

A la date du 04/02/2009 on avait :

openvz:~# vgdisplay
  --- Volume group ---
  VG Name               sys
  System ID
  Format                lvm2
...
  Alloc PE / Size       7584 / 29,62 GB
  Free  PE / Size       111528 / 435,66 GB

dans lequel on loge les Volumes Logiques (VL) des VEs.

Adressage Mac

On utilise une racine commune pour toutes les interfaces des VEs. Avec une base de la forme "00:E1:00:01:" et un numéro de VE de la forme XXX, cela donne : "00:E1:00:01:XX:XA" pour l'interface eth0 de la VE et "00:E1:00:01:XX:XB" pour la VETHXXX de l'hôte.

Le template

Ben, c'est un template etch standard avec installé par défaut des outils comme vim, wget, nscd, logcheck, logrotate, ssh, etc. On y ajoute le resolver par defaut à 81.91.236.2.

== Script de création ==

# Définition de la fonction de génération des adresses macs à partir du numéro du VE 

mac () { 
# La racine commune de l'adresse MAC est fixee 
mac="00:E1:00:01:"                             

# faire un controle sur la variable name (VEID du serveur) 
if [ $1 -gt 100 ]                                          
then                                                       
        {                                                  
        # Formater la variable name pour l'ajouter au reste de l'adresse MAC 
        mac0=$(echo $1 | sed 's/./&:/g');                                    
        mac0=$(echo $mac0 | sed 's/^\(.\{1\}\).\(.*\)$/\1\2/');              
        mac0=$(echo $mac0 | sed 's/^\(.\{4\}\).\(.*\)$/\1\2/');              

        # Ajouter le résultat obtenu a la racine de l'adresse MAC pour obtenir des adresses MAC completes 
        mac1=$(echo "$mac""$mac0""A");                                                                    
        mac2=$(echo "$mac""$mac0""B");                                                                    
        }                                                                                                 
else                                                                                                      
        {                                                                                                 
echo "Le nombre entre doit etre supérieur à 100";                                                         
return 0;                                                                                                 
        }                                                                                                 
fi                                                                                                        
};                                                                                                        

# recuperation des variables a utiliser dans le script
echo "Entrer le numero de la machine virtuelle a creer s'il vous plait"
read name                                                              
echo "Entrer la taille de la machine virtuelle a creer s'il vous plait"
read taille                                                            
echo "Entrer le nom du groupe de volumes a utiliser s'il vous plait"   
read grvol                                                             
echo "Entrer le nom de l'hote de la machine virtuelle a créer s'il vous plait"
read hostname                                                                 
echo "Entrer l'adresse IP de la machine virtuelle a créer s'il vous plait"    
read ipadd                                                                    
echo "Entrer le nom du pont auquel la machine virtuelle sera ajoutée s'il vous plait"
read bridge                                                                          

# verifier que le numéro entré est supérieur à 100
if [ $name -lt 100 ]                              
then                                              
        {                                         
        echo "le numero du serveur doit être supérieur a 100";
        exit 0;                                               
        }                                                     
fi                                                            

# verifier que le volume logique a creer n'existe pas encore
if [ -e /dev/mapper/$grvol-$name ]                          
then                                                        
         {                                                  
            echo "le point de montage existe déja";         
            exit 0;                                         
        }                                                   
fi                                                          

# Creation d'un volume logique
echo "creation du volume logique" 
lvcreate --size $taille --name $name $grvol 

# Creation du système de fichier
echo "création du système de fichier"
mkfs.ext3 /dev/$grvol/$name          

# Ecriture des bonnes lignes dans le fstab
echo "écriture des bonnes lignes dans le fstab"
echo ''/dev/mapper/$grvol-$name /var/lib/vz/vz_list/$name     ext3    defaults,errors=remount-ro      0       2 '' >> /etc/fstab

# Creation du repertoire de montage
echo "creation du repertoire de montage"
mkdir /var/lib/vz/vz_list/$name

# Montage des volumes logiques créés
echo "montage"
mount -a

# Création de l'environnement virtuel
vzctl create $name --ostemplate debian-4.0-i386-minimal

# Specification du nom du serveur virtuel
echo  "Specification du nom du serveur virtuel"
vzctl set $name --hostname $hostname --save

# Specification de l'adresse IP du serveur virtuel
echo  "Specification de l'adresse IP du serveur virtuel"

# Specification de la bonne addresse IP dans le fichier /etc/network/interfaces
sed -i 's/address 81.91.236.7/address '$ipadd'/g' /var/lib/vz/vz_list/$name/private/etc/network/interfaces

# creation de l'interface veth de la machine virtuelle

# appel de la fonction de creation des adresses MACs et passage de paramètre
mac $name

# Attribution d'une adresse veth au VE
vzctl set $name --netif_add "eth0,$mac1,veth$name.0,$mac2,$bridge" --save

# demarrage de la machine virtuelle
vzctl start $name

Todo list

  • - Faire le script de suppression d'une VE (en cours) - Faire le script de surveillance des VEs (en projet)

ZAO/Cotonou/Modèles/OpenVz (dernière édition le 2010-05-12 12:48:11 par FranckKouyami)