Mon CV

Une machine virtuelle sous VirtualBox en LaunchDaemon sur Mac, accessible via phpVirtualBox (2/3)

20 mai 2013

Si vous avez suivi l’épisode 1 de cette épopée – Une machine virtuelle sous VirtualBox en LaunchDaemon sur Mac, accessible via phpVirtualBox (1/3) – vous avez vu la méthode que j’utilise pour lancer en mode headless mes machines virtuelles (étapes 3 et 4).

Le script proposé a le mérite d’éteindre correctement vos machines virtuelles si vous éteignez la station de travail hôte, en traitant le signal SIGTERM. Mais, en écrivant ce billet, j’ai fait quelques recherches et je me suis aperçu que désormais Oracle propose une méthode officiellement supportée pour lancer en mode headless vos VM.

Concrètement, en lieu et place des étapes 3 et 4 que je proposais, vous pouvez utiliser la méthode qui est maintenant proposée. Cette méthode s’appuie sur un script qui est normalement présent dans votre application VirtualBox : /Applications/VirtualBox.app/Contents/MacOS/VBoxAutostartDarwin.sh.

 

Etape 3 (méthode alternative) : utiliser le script /Applications/VirtualBox.app/Contents/MacOS/VBoxAutostartDarwin.sh

Chez mois, ce script n’était pas exécutable, aussi je vous recommande par sécurité de faire un petit

sudo chmod +x /Applications/VirtualBox.app/Contents/MacOS/VBoxAutostartDarwin.sh

Il faut ensuite lancer cette commande pour ajouter vos machines virtuelles à la liste de machines virtuelles qui se lanceront automatique (en remplaçant YourVM par le nom de votre machine virtuelle) :

VBoxManage modifyvm YourVM --autostart-enabled on

Pour obtenir la liste des machines virtuelles, vous pouvez simplement faire un :

BoxManage list vms

Ce script peut également être associé à un fichier de configuration. Par défaut il doit être situé à l’emplacement /etc/vbox/autostart.cfg.

Il vous faut à minima créer ce fichier :

## Créons le dossier /etc/vbox (inexistant normalement)
sudo mkdir -p /etc/vbox
## Editons le fichier autostart.cfg
sudo nano /etc/vbox/autostart.cfg

Dans nano, nous allons ajouter une ligne. Cette commande autorise les utilisateurs à lancer leurs VM automatiquement, mais sans cela, j’avais une erreur au chargement des VM :

default_policy = allow

puis faites un CTRL + X pour quitter et validez l’enregistrement du fichier (Y ou O selon votre configuration).

Ensuite, attribuons les bons droits :

sudo chmod -R 755 /etc/vbox

 

Etape 4 (méthode alternative) : lancer automatiquement le script au démarrage de la machine

Un fichier XML d’exemple est fourni par Oracle pour la création du LaunchAgent ou LaunchDaemon nécessaire au chargement automatique du script de lancement des machines virtuelles. Ce fichier d’exemple est situé ici : /Applications/VirtualBox.app/Contents/MacOS/org.virtualbox.vboxautostart.plist.

Le fichier fourni n’étais pas pleinement fonctionnel pour moi, qui souhaitait lancer mes machines au boot, sans ouverture de session. Voici donc mon fichier modifié :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Disabled</key>
  <false/>
  <key>KeepAlive</key>
  <true/>
  <key>Label</key>
  <string>org.virtualbox.vboxautostart</string>
  <key>ProgramArguments</key>
  <array>
    <string>/Applications/VirtualBox.app/Contents/MacOS/VBoxAutostartDarwin.sh</string>
    <string>--start</string>
    <string>/etc/vbox/autostart.cfg</string>
  </array>
</dict>
</plist>

Vous pouvez évidemment personnaliser l’emplacement du fichier de configuration /etc/vbox/autostart.cfg si besoin.

Pour créer ce fichier et le charger, dans votre terminal :

sudo nano /Library/LaunchDaemons/org.virtualbox.vboxautostart.plist

puis faites un CTRL + X pour quitter et validez l’enregistrement du fichier (Y ou O selon votre configuration). Ensuite, chargez ce démon :

sudo launchctl load /Library/LaunchDaemons/org.virtualbox.vboxautostart.plist

 

Personnellement, comme j’étais assez fier d’avoir réussi mettre en place la méthode que je vous présentais dans mon précédent billet, je suis revenu à celle-ci !

Posted in Apple et MacintoshTags: