{"id":792,"date":"2012-01-23T01:02:52","date_gmt":"2012-01-23T00:02:52","guid":{"rendered":"https:\/\/www.digdeo.fr\/?p=792"},"modified":"2022-03-16T12:10:20","modified_gmt":"2022-03-16T11:10:20","slug":"virtualbox-serveur-distant-sans-affichage-headless","status":"publish","type":"post","link":"https:\/\/www.digdeo.fr\/articles\/sys-admin\/virtualbox-serveur-distant-sans-affichage-headless","title":{"rendered":"Utiliser VirtualBox sur un serveur distant sans affichage"},"content":{"rendered":"\n<p>VirtualBox est dans son usage le plus courant, un outil de virtualisation sur les postes bureautiques. N\u00e9anmoins il a des avantages ind\u00e9niables pour \u00e9muler et param\u00e9trer certaines caract\u00e9ristiques de machines physiques tel que les bios EFI, des cartes r\u00e9seaux en mode promiscuous, &#8230;<\/p>\n\n\n\n\n\n\n\n<p>Il peut alors \u00eatre tentant d&rsquo;utiliser VirtualBox pour certaine virtualisation de syst\u00e8mes d&rsquo;exploitation dans un mode h\u00e9berg\u00e9 sur du mat\u00e9riel en datacenter. Mais VirtualBox est un logiciel graphique, il faut donc pouvoir le piloter depuis un terminal et exporter l&rsquo;affichage des machines virtuelles sur un protocole r\u00e9seau de prise en main \u00e0 distance. On parle alors de lancer Virtualbox en mode headless.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pr\u00e9paratifs et installation de VirtualBox<\/h2>\n\n\n\n<p>Tout d&rsquo;abord nous partons du principe que votre serveur qui va accueillir la virtualisation VirtualBox est install\u00e9, cette installation a \u00e9t\u00e9 test\u00e9e ici sous Debian 6 Squeeze et Ubuntu 11.10 pour la branche 4.1 de VirtualBox.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ajout du d\u00e9p\u00f4t officiel VirtualBox<\/h3>\n\n\n\n<p>Dans votre fichier <code>\/etc\/apt\/sources.list<\/code> ou dans un nouveau fichier <code>virtualbox<\/code> dans <code>\/etc\/apt\/sources.list.d\/<\/code> :<\/p>\n\n\n\n<p>Pour Ubuntu 11.10 :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">deb http:\/\/download.virtualbox.org\/virtualbox\/debian oneiric contrib\n<\/pre>\n\n\n\n<p>Pour Debian 6 :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">deb http:\/\/download.virtualbox.org\/virtualbox\/debian squeeze contrib non-free\n<\/pre>\n\n\n\n<p>Ensuite nous allons t\u00e9l\u00e9charger et installer la clef publique du d\u00e9p\u00f4t VirtualBox :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">wget -q http:\/\/download.virtualbox.org\/virtualbox\/debian\/oracle_vbox.asc -O- | sudo apt-key add -\n<\/pre>\n\n\n\n<p>L&#8217;empreinte de la clef \u00e0 v\u00e9rifier est :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">7B0F AB3A 13B9 0743 5925  D9C9 5442 2A4B 98AB 5139\nOracle Corporation (VirtualBox archive signing key) &lt;info@virtualbox.org&gt;\n<\/pre>\n\n\n\n<p>[title size=\u00a0\u00bb3&Prime;]Installation des composants de VirtualBox[\/title]<br>On passe \u00e0 l&rsquo;installation des packages et des pr\u00e9requis pour la suite :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apt-get install virtualbox-4.1 build-essential dkms linux-header-$(uname -r)\n<\/pre>\n\n\n\n<p>Nous avons ajouter le n\u00e9cessaire pour compiler des programmes gr\u00e2ce au paquet <code>build-essential<\/code> car nous<br>allons devoir installer manuellement le pack d&rsquo;extension de VirtualBox n\u00e9cessaire pour d\u00e9porter l&rsquo;affichage des machines virtuelles en RDP. En effet depuis la branche 4 de VirtualBox, un certain nombre de composants pas forc\u00e9ment utile pour toutes les installations ont \u00e9t\u00e9 regroup\u00e9 dans ce pack d&rsquo;extension.<\/p>\n\n\n\n<p>Il faut se rendre sur <a title=\"Page t\u00e9l\u00e9chargement VirtualBox\" href=\"http:\/\/www.virtualbox.org\/wiki\/Downloads\" rel=\"nofollow\">la page de t\u00e9l\u00e9chargement de VirtualBox<\/a> pour trouver le lien du pack d&rsquo;extension.<br>Pour l&rsquo;exemple ici nous sommes sur la version 4.1.8, VBoxManage s&rsquo;occupe de compiler et d&rsquo;installer le pack d&rsquo;extension.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd \/usr\/src\nwget http:\/\/download.virtualbox.org\/virtualbox\/4.1.8\/Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack\nVBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack\n<\/pre>\n\n\n\n<p>Enfin il faut mettre dans le groupe <code>vboxusers<\/code> l&rsquo;utilisateur qui lancera les machines virtuelles au travers de VirtualBox, admettons ici <code>vbox<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">adduser vbox vboxusers\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Piloter VirtualBox en ligne de commande<\/h3>\n\n\n\n<p>La plupart des t\u00e2ches d&rsquo;administration de VirtualBox se font gr\u00e2ce \u00e0 la commande <code>VBoxManage<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cr\u00e9ation d&rsquo;une machine virtuelle<\/h3>\n\n\n\n<p>Par d\u00e9faut VirtualBox va mettre tous le n\u00e9cessaire des machines virtuelles dans le r\u00e9pertoire <code>\/home\/vbox\/.VirtualBox<\/code>, libre \u00e0 vous de faire un lien symbolique de ce dossier vers un r\u00e9pertoire normal.<\/p>\n\n\n\n<p>Pour cr\u00e9er une machine nomm\u00e9e <code>web-1<\/code> nous allons lancer les commandes suivantes :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">VBoxManage createvm --name \"web-1\" --register\n<\/pre>\n\n\n\n<p>Votre machine virtuelle est cr\u00e9e, il reste \u00e0 lui ajouter des composants tels des disques durs, des p\u00e9riph\u00e9riques.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">VBoxManage modifyvm \"web-1\" --memory 512 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0\nVBoxManage createhd --filename web-1.vdi --size 50000\nVBoxManage storagectl \"web-1\" --name \"IDE Controller\" --add ide\nVBoxManage storageattach \"web-1\" --storagectl \"IDE Controller\" --port 0 --device 0 --type hdd --medium web-1.vdi\nVBoxManage storageattach \"web-1\" --storagectl \"IDE Controller\" --port 1 --device 0 --type dvddrive --medium \/data\/isos\/debian-6.0.3-amd64-netinst.iso\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Importer une machine virtuelle existante<\/h3>\n\n\n\n<p>Si vous voulez transf\u00e9rer une machine existante sur ce nouveau serveur et pouvoir lancer l&rsquo;instance, il va falloir d\u00e9poser le fichier de configuration XML de la machine virtuelle dans le dossier <code>.VirtualBox\/Machines\/nom-machine<\/code> de l&rsquo;utilisateur qui va la lancer. Puis dans le dossier <code>.VirtualBox\/VDI<\/code> l&rsquo;image disque <code>nom-machine.vdi<\/code>.<\/p>\n\n\n\n<p>Une fois la copie effectu\u00e9e, il faut indiquer \u00e0 VirtualBox de prendre en compte cette nouvelle instance.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">VBoxManage registervm Machines\/nom-machine\/nom-machine.xml\n<\/pre>\n\n\n\n<p>A pr\u00e9sent cette machine peut \u00eatre manipul\u00e9e comme les autres.<\/p>\n\n\n\n<p>Si vous n&rsquo;utilisiez pas l&rsquo;export RDP de l&rsquo;affichage, il faut changer l&rsquo;option dans la configuration de la machine import\u00e9e.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">VBoxManage modifyvm \"nom-machine\" --vrde on\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Contr\u00f4le des machines virtuelles<\/h3>\n\n\n\n<p>Pour d\u00e9marrer une machine virtuelle avec un export RDP de l&rsquo;affichage il faut lancer la commande :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">VBoxHeadless --startvm \"web-1\"<\/pre>\n\n\n\n<p>Pour arr\u00eater une machine :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">VBoxManage controlvm \"web-1\" poweroff<\/pre>\n\n\n\n<p>Pour suspendre et mettre en veille une machine :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">VBoxManage controlvm \"web-1\" pause<\/pre>\n\n\n\n<p>Pour red\u00e9marrer une machine :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">VBoxManage controlvm \"web-1\" reset<\/pre>\n\n\n\n<p>Pour prendre le contr\u00f4le de la partie graphique de vos machines virtuelles, il faut lancer une connexion RDP sur le serveur o\u00f9 les machines tournent. Pour la s\u00e9lection du port RDP soit vous l&rsquo;activez \/ d\u00e9sactivez en fonction de vos besoins, soit il faut scripter les param\u00e8tres ou les processus pour trouver quel port RDP est attach\u00e9 \u00e0 quelle machine virtuelle.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><a title=\"VirtualBox\" href=\"http:\/\/www.virtualbox.org\/\" rel=\"nofollow\">VirtualBox d&rsquo;Oracle<\/a><\/li><li><a title=\"VirtualBox Documentation RDP headless\" href=\"http:\/\/www.virtualbox.org\/manual\/ch07.html\" rel=\"nofollow\">VirtualBox documentation Headless et RDP<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>VirtualBox est un logiciel de virtualisation destin\u00e9 principalement aux stations de travail, il est donc graphique. N\u00e9anmoins ses avantages quand \u00e0 l&rsquo;\u00e9mulation de certains composants mat\u00e9riel peuvent nous amener \u00e0 vouloir le lancer sur des serveurs sans affichage dit \u00ab\u00a0headless\u00a0\u00bb. Nous allons voir comment installer et param\u00e9trer VirtualBox pour un usage en ligne de commande.<\/p>\n","protected":false},"author":2,"featured_media":3032,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[18,19,20,21],"class_list":["post-792","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sys-admin","tag-debian","tag-ubuntu","tag-virtualbox","tag-virtualisation"],"_links":{"self":[{"href":"https:\/\/www.digdeo.fr\/articles\/wp-json\/wp\/v2\/posts\/792","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.digdeo.fr\/articles\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.digdeo.fr\/articles\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.digdeo.fr\/articles\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.digdeo.fr\/articles\/wp-json\/wp\/v2\/comments?post=792"}],"version-history":[{"count":1,"href":"https:\/\/www.digdeo.fr\/articles\/wp-json\/wp\/v2\/posts\/792\/revisions"}],"predecessor-version":[{"id":3033,"href":"https:\/\/www.digdeo.fr\/articles\/wp-json\/wp\/v2\/posts\/792\/revisions\/3033"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.digdeo.fr\/articles\/wp-json\/wp\/v2\/media\/3032"}],"wp:attachment":[{"href":"https:\/\/www.digdeo.fr\/articles\/wp-json\/wp\/v2\/media?parent=792"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.digdeo.fr\/articles\/wp-json\/wp\/v2\/categories?post=792"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.digdeo.fr\/articles\/wp-json\/wp\/v2\/tags?post=792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}