P24 Annexe

De Wiki de Projets IMA


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