P24 Annexe : Différence entre versions
(→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 | + | 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
Sommaire
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
- 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
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