P24 Annexe : Différence entre versions

De Wiki de Projets IMA
(Création des machines virtuelles Xen)
Ligne 8 : Ligne 8 :
 
Sur une machine Debian Jessie, il est nécessaire d'installer les outils suivants :
 
Sur une machine Debian Jessie, il est nécessaire d'installer les outils suivants :
 
  apt-get update -y; apt-get upgrade -y
 
  apt-get update -y; apt-get upgrade -y
  apt-get install -y xen-hypervisor-4.4-amd64 xen-tools sqlite3 nginx ssh xen-utils-common
+
  apt-get install -y xen-hypervisor-4.4-amd64 xen-tools sqlite3 nginx ssh xen-utils-common bridge-utils
 
Les outils suivants sont également conseillés :
 
Les outils suivants sont également conseillés :
  apt-get install -y vim bridge-utils python curl lynx nmap
+
  apt-get install -y vim python curl lynx nmap
 
=Installation de l'hyperviseur Xen=
 
=Installation de l'hyperviseur Xen=
 +
 +
 +
=Création du bridge général=
 +
Nous créons une interface ''tap'' dédiée à la connexion des interfaces du bridge. L'interface eth0 est dédiée au support. Pour que la configuration soit identique si la machine redémarre, nous éditons le fichier ''/etc/network/interfaces'' comme suit :
 +
# The loopback network interface
 +
auto lo
 +
iface lo inet loopback
 +
 +
# The primary network interface
 +
auto eth0
 +
iface eth0 inet static
 +
address 172.26.64.13
 +
netmask 255.255.240.0
 +
gateway 172.26.79.254
 +
 +
auto tap0
 +
iface tap0 inet manual
 +
#MASQUERADE
 +
pre-up iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -j MASQUERADE
 +
pre-up ip tuntap add mode tap dev tap0
 +
pre-up ip addr add 172.26.79.230/20 dev tap0
 +
up ip link set dev tap0 up
 +
#post-up ip route add 172.26.79.230/32 dev tap0
 +
down ip link set tap0 down
 +
post-down ip link del dev tap0
 +
 +
 +
auto Summoners
 +
iface Summoners inet static
 +
bridge-ports tap0
 +
address 10.0.0.1
 +
netmask 255.0.0.0
 +
 +
  
 
=Création des machines virtuelles Xen=
 
=Création des machines virtuelles Xen=
Ligne 17 : Ligne 51 :
 
  xen-create-image --hostname='''teemo''' --ip=10.'''2'''.0.1 --netmask=255.255.255.240 --gateway='''10.0.0.1''' \
 
  xen-create-image --hostname='''teemo''' --ip=10.'''2'''.0.1 --netmask=255.255.255.240 --gateway='''10.0.0.1''' \
 
  --dir=/usr/local/xen --mirror=http://debian.polytech-lille.fr/debian/ --dist=jessie --passwd
 
  --dir=/usr/local/xen --mirror=http://debian.polytech-lille.fr/debian/ --dist=jessie --passwd
 +
 +
 +
  
 
=Architecture réseau Xen=
 
=Architecture réseau Xen=
 +
  
 
=Installation de Docker=
 
=Installation de Docker=
Ligne 40 : Ligne 78 :
  
 
=Architecture réseau Docker=
 
=Architecture réseau Docker=
 +
====Création d'un bridge personnalisé pour Docker ====
 +
Pour changer le réseau par défaut de Docker, on doit dans un premier temps détruire toute la configuration existante.
 +
service docker stop
 +
ip link set docker0 down
 +
brctl delbr docker0
 +
iptables -t nat -F POSTROUTING
 +
 +
On peut ensuite créer un nouveau bridge qui correspond à nos attentes.
 +
brctl addbr dockerBridge
 +
ip addr add 10.0.0.1/8 dev dockerBridge
 +
ip link set dev dockerBridge up
 +
systemctl daemon-reload
 +
service docker restart
 +
 +
On peut alors vérifier que notre configuration a bien été prise en compte avec les commandes suivantes :
 +
ifconfig
 +
iptables -t nat -L -n
 +
====Configuration Docker ====
 +
Quelques informations pour la configuration réseau
 +
vim /lib/systemd/system/docker.service
 +
Il faut indiquer à Docker qu'il faut regarder le fichier de configuration '''/etc/default/docker'''. En effet, docker ne gère pas les distributions linux basée sur systemd, comme la Debian 8 que nous utilisons. Cette erreur, particulièrement difficile à détecter, ne survient pas sous Ubuntu ou d'autres distributions utilisant [http://connect.ed-diamond.com/GNU-Linux-Magazine/GLMF-153/Systemd-vainqueur-de-Upstart-et-des-scripts-System-V ''upstart'' ou ''SysVInit'']. Pour contourner le problème, il faut effectuer les modifications suivantes :
 +
'''EnvironmentFile=-/etc/default/docker'''
 +
ExecStart=/usr/bin/docker -d '''$DOCKER_OPTS''' -H fd://
 +
On modifie ensuite le fichier de configuration référencé, pour y ajouter la ligne suivante :
 +
echo 'DOCKER_OPTS="-b=dockerBridge"' >> /etc/default/docker
 +
  
 
=Mise en place des scripts=
 
=Mise en place des scripts=
  
 
=Tests=
 
=Tests=

Version du 16 février 2016 à 16:45


Cette page est un guide pas à pas pour reconstruire l'architecture de notre projet sur une machine Debian (Jessie 8) avec un noyau Linux 3.16.0-4-amd64.


Installation des outils de base

Sur une machine Debian Jessie, il est nécessaire d'installer les outils suivants :

apt-get update -y; apt-get upgrade -y
apt-get install -y xen-hypervisor-4.4-amd64 xen-tools sqlite3 nginx ssh xen-utils-common bridge-utils

Les outils suivants sont également conseillés :

apt-get install -y vim python curl lynx nmap

Installation de l'hyperviseur Xen

Création du bridge général

Nous créons une interface tap dédiée à la connexion des interfaces du bridge. L'interface eth0 est dédiée au support. Pour que la configuration soit identique si la machine redémarre, nous éditons le fichier /etc/network/interfaces comme suit :

# The loopback network interface

auto lo iface lo inet loopback

  1. The primary network interface

auto eth0 iface eth0 inet static

address 172.26.64.13
netmask 255.255.240.0
gateway 172.26.79.254

auto tap0 iface tap0 inet manual

  1. MASQUERADE
pre-up iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -j MASQUERADE
pre-up ip tuntap add mode tap dev tap0
pre-up ip addr add 172.26.79.230/20 dev tap0
up ip link set dev tap0 up
  1. post-up ip route add 172.26.79.230/32 dev tap0
down ip link set tap0 down
post-down ip link del dev tap0


auto Summoners iface Summoners inet static

bridge-ports tap0
address 10.0.0.1
netmask 255.0.0.0


Création des machines virtuelles Xen

Une fois les outils Xen installé, on créée autant de vm que nécessaire

xen-create-image --hostname=teemo --ip=10.2.0.1 --netmask=255.255.255.240 --gateway=10.0.0.1 \
--dir=/usr/local/xen --mirror=http://debian.polytech-lille.fr/debian/ --dist=jessie --passwd



Architecture réseau Xen

Installation de Docker

Mise a jour et téléchargement d'outils pratiques

apt-get update -y; aptget upgrade -y
apt-get install -y vim curl

Ajout des dépôts backports de jessie

echo -e "\n\n#\n# Jessie backports\n#\n deb     http://ftp.fr.debian.org/debian jessie-backports main" >> /etc/apt/sources.list
echo -e "deb-src     http://ftp.fr.debian.org/debian jessie-backports main" >> /etc/apt/sources.list
apt-get update -y; aptget upgrade -y

Installation proprement dite de Docker

apt-get install -y docker-engine

Ajout du proxy dans l’environnement Docker

mkdir /etc/systemd/system/docker.service.d
echo -e "[Service]\nEnvironment=HTTP_PROXY=http://proxy.polytech-lille.fr:3128/" > /etc/systemd/system/docker.service.d/http-proxy.conf
systemctl daemon-reload
systemctl restart docker

Architecture réseau Docker

Création d'un bridge personnalisé pour Docker

Pour changer le réseau par défaut de Docker, on doit dans un premier temps détruire toute la configuration existante.

service docker stop
ip link set docker0 down
brctl delbr docker0
iptables -t nat -F POSTROUTING

On peut ensuite créer un nouveau bridge qui correspond à nos attentes.

brctl addbr dockerBridge
ip addr add 10.0.0.1/8 dev dockerBridge
ip link set dev dockerBridge up
systemctl daemon-reload
service docker restart

On peut alors vérifier que notre configuration a bien été prise en compte avec les commandes suivantes :

ifconfig
iptables -t nat -L -n

Configuration Docker

Quelques informations pour la configuration réseau

vim /lib/systemd/system/docker.service

Il faut indiquer à Docker qu'il faut regarder le fichier de configuration /etc/default/docker. En effet, docker ne gère pas les distributions linux basée sur systemd, comme la Debian 8 que nous utilisons. Cette erreur, particulièrement difficile à détecter, ne survient pas sous Ubuntu ou d'autres distributions utilisant upstart ou SysVInit. Pour contourner le problème, il faut effectuer les modifications suivantes :

EnvironmentFile=-/etc/default/docker
ExecStart=/usr/bin/docker -d $DOCKER_OPTS -H fd:// 

On modifie ensuite le fichier de configuration référencé, pour y ajouter la ligne suivante :

echo 'DOCKER_OPTS="-b=dockerBridge"' >> /etc/default/docker


Mise en place des scripts

Tests