virtualisation
- Réseau virtuel de 3distributions avec qemu-system-x86_64 (Kvm) sur Hôte Ubuntu -
Après «avoir fait naître et insuffler de la vie dans la machine virtuelle N°1», je peux maintenant faire la même chose pour d'autres machines !
Deux méthodes sont disponibles :
Recommencer depuis le début sur un nouveau fichier disque dur et une nouvelle image ISO (ou un CD/DVD physique) d'une autre distribution.
Ou le «CLONAGE» de la machine virtuelle précédente :
objectif :Avoir 3 machines virtuelles supplémentaires (évolutif < 10) en fonction sur la machine physique ainsi qu'un réseau fonctionnel et accès Internet le plus simple au niveau de son routage avec ma Freebox v6.
duplication du fichier disque dur hdDebian-stable.img :
Pour déja mettre des Debian GNU/Linux -stable supplémentaires dans ce réseau virtuel, je copie autant de fois le fichier image hdDebian-stable.img qu'il faudra pour chaque machine virtuelle et en les renommant pour bien les repérer.
mv hdDebian-stable.img hd1Debian-stable.img => premier disque « hd1 » cp hd1Debian-stable.img hd2Debian-stable.img => deuxième disque « hd2 » cp hd1Debian-stable.img hd3Debian-stable.img => troisième disque « hd3 »
nommage des scripts de lancement respectifs :
J'attribue un script de lancement pour chaque fichier disque dur «hdX» obtenu précédemment.
mv debian-stable.sh debian1-stable.sh => script pour le disque « hd1 » cp debian1-stable.sh debian2-stable.sh => script pour le disque « hd2 » cp debian1-stable.sh debian3-stable.sh => script pour le disque « hd3 »
Adaptations des scripts de lancement :
Pour «identifier (personnaliser)» les machines virtuelles afin d'éviter les conflis de TRAMES IP dans mon «ENTONNOIR br0» créé précédemment.
Attribution de l'adresse MAC :
Afin que chaque carte réseau émulée par qemu-system-x86_64 puisse bien s'intégrer au mieux possible en conformité au protocole TCP/IP, je place une adresse MAC différente dans les scripts de lancements.
A placer dans l'option «macaddr=» des fichiers respectifs de lancements debianX-stable.sh :
macaddr=08:00:27:A7:F7:D8 -> debian1 macaddr=08:00:27:E2:43:D4 -> debian2 macaddr=08:00:27:2A:0A:9D -> debian3
==> Comme je l'utilise aussi pour un autre réseau virtuel, j'emploie l'outil de création aléatoire d'adresse MAC de Virtualbox-OSE pour bénéficier de sa plage de choix d'adresses MACS facilement en le laissant m'en proposer à ma place!
Pour repérer les cartes réseau émulées par qemu-system-x86_64 ainsi que le nom du fichier disque dans chaque script de lancement :
vlan=X -> N° de l'interface de la carte de qemu-system-x86_64 (0...9 maxi) tap=X -> N° du pont (bridge sur br0, 0...9 maxi) -hdXdebian... -> N° pour préciser l'appartenance du fichier disque
Reprise de l'exemple d'un script comme avant :
#!/bin/bash qemu-system-x86_64 -k fr -smp 2 -m 256 \ -net nic,vlan=X,macaddr=Z \ -> "Z" = comme chaque adresse ci-dessus -net tap,vlan=X,ifname=tapX,script=/etc/qemu-ifup \ -hda hdXDebian-stable.img \ #-boot d \ #-cdrom $1
Validation des scripts pour sudo :
Je donne l'information à sudo de la présence de ces nouveaux scripts de lancements avec visudo par une nouvelle ligne supplémentaire dans /etc/sudoers pour chacun :
su -c visudo -> pour passer temporairement par « root »
Lignes à ajouter (extensible à 10 scripts de lancements maximum déjà testés) :
/home/"xxx"/debian1-stable.sh, \ /home/"xxx"/debian2-stable.sh, \ /home/"xxx"/debian3-stable.sh, \
Pré-conformité des machines virtuelles :
But :Vérifier la reconnaissance de l'interface carte réseau émulée par qemu-system-x86_64 pour chacune de ces machines.
==> J'utilise déjà uniquement UN script de lancement à la fois !
Démarrage nouvelle machine «X» :
Pour commencer, je déclanche le pont br0 de l'hôte Ubuntu :
sudo bin/bridge.sh start -> pont démarré /sbin/ifconfig -> vérification br0 (MULTICAST)
En éxécutant debian"X"-stable.sh, c'est comme si on mettait l'alimentation d'un boiter de PC en fonction.
sudo ./debian1-stable.sh -> lancement du premier script par mon $HOME
Sous le compte root de la machine virtuelle :
Après avoir laissé la procédure de mise en service s'exécuter, on arrive à la la requête Login de cette distribution virtuelle, je passe sous le compte root de cette distribution.
ifconfig | grep HWaddr -> vérification de l'adresse MAC et N° port eth
Si aucun interface eth n'est détecté :
dhclient -> validation de l'interface et adresse MAC par le DHCP de cette distribution -stable virtuelle
Si une intervention due à l'absence d'interface est apparue, une action sur /etc/nework/interfaces est nécessaire pour préciser le bon N° eth qui a été trouvé par DHCP ci-dessus afin qu'il soit bien pris en compte lors d'un prochain reboot de cette machine :
nano /etc/network/interfaces -> précision du BON N° d'interface eth
==> C'est terminé pour cette debian1-stable.sh, je la stoppe par :
halt -> je suis sous root de celle ci, bien sûr !
Les autres «machines» !
Pour autant de machines souhaitées (<10) :
Laissant le pont démarré ci dessus en service (bridge.sh start -> pont démarré), je recommence INDIVIDUELLEMENT comme ci-dessus pour chaque script afin de vérifier leur interface réseau respectif.
Inventaire :
- 3 fichiers disques hdX. -> Ok
- 3 scripts de lancements -> Ok
- 3 adresses MACS --> Ok
- 3 portes tapX --> Ok
- 3 interface vlanX --> Ok
- même login/mdp root et user pour chacune des machines virtuelles --> Ok
Comme les 3 distributions Debian GNU/Linux proviennent de la même installation initiale, les logins et mots de passe sont les mêmes pour les comptes root et user (à adapter si nécessaire).
Déploiement du réseau :
Après avoir contrôlé l'inventaire précédent, je vérifie et paramètre chaque distribution virtuelle pour que leurs interfaces ethX soient bien intégrés avec le pont br0 de l'hôte Ubuntu.
- Sur l'HÔTE : -
Je mets en fonction le pont sur ma carte physique manuellement pour conserver le choix pour mes besoins.
Mise en route du pont br0 :
sudo bin/bridge.sh start
Vérifier gateway :
netstat -rn
Pour CHAQUE machine virtuelle :
lancement script debianX-stable.sh.
Vérifier ethX et adresse MAC :
ifconfig | grep HWaddr
Vérifier gateway:
netstat -rn
Modif de grub :
Pour modifier le démarrage du noyau ainsi que l'affichage de la console des distribs pour avoir un meilleur confort. Affichage console (vga=791). Défilement (quiet).
/boot/grub/menu.lst -> mettre les options : # defoptions=vga=791 quiet update-grub -> pour la prochaine reconnaissance au boot (laissez le "#")
Renommage du hostname :
Mettre «debian-stableX» (ex: 1,2, 3..) dans /etc/hostname.
Personnaliser la machine (/etc/hostname).