Monter un container LXC
|
03-01-2015, 13h50
(Modification du message : 16-01-2015, 20h05 par supersnail.)
Message : #1
|
|
supersnail
![]() Éleveur d'ornithorynques ![]() ![]() ![]() ![]() ![]() ![]() ![]() Messages : 1,609 Sujets : 71 Points: 465 Inscription : Jan 2012 |
Monter un container LXC
Bonjour à tous et bonne année !
Depuis quelques temps je fais joujou avec la virtualisation sur notre gnou/manchot préféré, et je profite de cette section "Administration système" flambant neuve pour faire un petit guide de la galaxie LXC pour les débutants. I - LXC, kézako et à quoi ça va me servir ? Tout d'abord, LXC est un projet (heureusement bien avancé) permettant de faire de la "virtualisation légère", c'est-à-dire de créer des machines virtuelles GNU/Linux qui utilisent le noyau de l'hôte. De plus, la virtualisation repose sur les fonctionnalité d'un noyau Linux récent "standard", ainsi contrairement à OpenVZ, pas besoin d'un noyau patché pour s'adonner au plaisirs de la virtualisation ! ![]() Venons-en à la deuxième question qui est "à quoi ça va me servir ?" (je supposerai ici que vous n'êtes pas un un sysadmin vétéran, cc Snorky :þ). Je pourrais répondre que cela peut permettre de tester de nouveaux logiciels sans craindre de péter sa distribution principale, isoler des programmes privateurs (qui a dit Oracle ?) ou qui essaient d'espionner l'utilisateur (qui a dit Skype ? >:]), ou tout simplement séparer environnement de dev/machine de tous les jours (la mise en place/migration d'une VM de production peut même se faire assez facilement grâce à Docker, qui s'appuie justement sur LXC, bien que Docker semble supporter d'autres technos). Cependant je ne recommande pas LXC pour faire des VM de CTF ou pour débugguer des malwares/rootkits, justement à cause du fait que le container et l'hôte partagent le même noyau (un exploit kernel et PAF le système :')) II - Comment ça s'installe / comment on s'en sert ? Tout d'abord il va falloir nous munir d'un compte root (étant donné que nous aurons plusieurs commandes à taper, je recommande un "su" et un "sudo -s" pour les ubunteros). Il nous faudra installer le paquet "lxc" de la distribution (via apt-get sur debian/ubuntu/mint, yum pour fedora et pacman pour archlinux). Pour ceux qui ont une partition "/" assez petite, étant donner que les machines virtuelles vont se placer dans /var/lib/lxc, je vous recommande de symlinker ce répertoire vers une partition plus grande (de toute façon, seul root pourra accéder aux VM ![]() Vient ensuite le grand moment de notre vie, l'installation de notre container \o/. Il suffit de taper la commande magique: Code : # lxc-create -n <nom_de_votre_vm> -t download Vous devrez ensuite sélectionner la distribution, sa version ainsi que l'architecture (i386 pour du 32 bits et amd64 pour du 64bits), puis après un temps plus ou moins long, le temps de télécharger l'image du système, vous vous retrouvez face à votre container lxc tout brillant ![]() Cependant, avant de lancer la VM, il vous faudra définir un mot de passe root, celui-ci n'ayant pas été défini dans les images de VM téléchargées. Vous pouvez pour le faire soit chrooter directement dans le dossier du container, soit la méthode plus "classe" qui est de démarrer le container (via un Code : lxc-start -n <le_nom_du_template> Code : lxc-attach -n <le_nom_du_template> Normalement, vous devriez avoir un container fonctionnel, mais sans accès au réseau cependant, ce que nous allons corriger dans la section suivante. III - Configuration du réseau Nous allons ici créer un réseau de type "veth" pour LXC (que l'on pourra aussi réutiliser pour des VM Qemu/KVM et ainsi avoir un joli LAN de machines virtuelles ![]() Pour les ubunteros, le bridge est déjà préconfiguré (l'installation de lxc a créé un périphérique "lxcbr0" directement disponible). Sinon, je vous laisse vous référer à la documentation de votre distribution pour la création d'un bridge car je suis flemmard et j'ai pas envie de traiter la configuration du bridge pour chaque distribution existante. Dans ce tutoriel, on ne se limite qu'à la création d'un réseau privé virtuel, que vous pourrez éventuellement NATer. Dans la suite du tutoriel, je considèrerai que tout le monde a défini l'adresse IP de br0 (ou lxcbr0) à 10.0.1.1/24 (sans passerelle par défaut). Une fois votre bridge créé, il suffit de modifier la configuration de la VM (dans /var/lib/lxc/<nom_de_la_vm>/config) et y rajouter/remplacer ceci: Code : lxc.network.type = veth Du côté de l'hyperviseur, un petit Code : iptables -t nat -F POSTROUTING -s 10.0.1.0/24 -j MASQUERADE ![]() Vous pouvez arrêtez le container, si vous l'avez déjà lancé via un petit "lxc-stop -n <nom_de_la_VM>". Au prochain démarrage vous devriez avoir un réseau fonctionnel ! (modulo le DNS à rajouter dans /etc/resolv.conf). Ce sera tout ici, si vous avez des questions/difficultés de configuration n'hésitez pas à les poser ![]()
Mon blog
Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp "VIM est merveilleux" © supersnail |
|
« Sujet précédent | Sujet suivant »
|
Messages dans ce sujet |
Monter un container LXC - par supersnail - 03-01-2015, 13h50
RE: Monter un container LXC - par Atlas - 04-01-2015, 22h41
RE: Monter un container LXC - par supersnail - 04-01-2015, 23h01
RE: Monter un container LXC - par otherflow - 07-01-2015, 01h07
RE: Monter un container LXC - par 0pc0deFR - 08-01-2015, 20h13
RE: Monter un container LXC - par supersnail - 08-01-2015, 20h21
RE: Monter un container LXC - par T1loc - 28-01-2015, 18h06
RE: Monter un container LXC - par Xpl0ze - 03-09-2015, 18h45
RE: Monter un container LXC - par supersnail - 03-09-2015, 19h05
|
Utilisateur(s) parcourant ce sujet : 2 visiteur(s)