18 votes

Utilisation de vagrant pour exécuter des machines virtuelles avec desktop environment

L'environnement de développement de mon entreprise est basé sur des machines virtuelles, fonctionnant sur virtualbox. Nous aimerions aller un peu plus loin et utiliser les capacités de Vagrant pour avoir la description de la machine dans un fichier texte et pouvoir ensuite "élever" cette machine en fonction de ce fichier texte. Combiné à puppet, cela nous permettrait de résoudre le problème que tout le monde a des versions de logiciels différentes installées dans la VM.

Cependant, Vagrant semble très axé sur le développement sur l'hôte, laissant la machine en arrière-plan. Nous aurions besoin d'avoir notre environnement de développement à l'intérieur de la machine, donc nous aurions besoin d'une interface graphique complète, donc en tapant "vagrant up" une machine avec un environnement de bureau complet (XFCE, KDE...) devrait apparaître.

Jusqu'à présent, j'ai réussi à créer une boîte "de base" à partir d'une distribution Xubuntu. Mais lorsque je tape "vagrant up", bien que le bureau apparaisse et que je puisse me connecter correctement, Vagrant se bloque sur le message "Waiting for machine to boot". Cela peut prendre quelques minutes...". Au bout d'un moment, Vagrant se bloque pour cause de timeout. Les dossiers partagés ne sont donc pas créés, et le package provisioner -puppet- n'est pas exécuté.

Quelqu'un sait comment créer une machine virtuelle avec une interface graphique complète en utilisant vagrant ? Merci d'avance.

17voto

Air Points 984

Je viens de le faire fonctionner en trois étapes. Le conseil de askubuntu.com n'a pas vraiment marché pour moi, alors essayez cette version simplifiée :

  1. Faire fonctionner une image Ubuntu de base. Vous devriez être capable de la démarrer et vagrant ssh .
  2. Ensuite, activez l'affichage de VirtualBox, qui est désactivé par défaut. Arrêtez la VM et décommentez ces lignes dans le fichier Vagrantfile : config.vm.provider :virtualbox do |vb| vb.gui = true end
  3. Démarrez la VM et observez la nouvelle fenêtre d'affichage. Maintenant, il vous suffit d'installer et de démarrer xfce4 . Utilisez vagrant ssh et : sudo apt-get install xfce4 sudo startxfce4&

C'est ça, vous devriez atterrir dans un xfce4 session.

Mise à jour : Pour une meilleure expérience, je recommande ces améliorations :

  1. Ne pas démarrer l'interface graphique en tant que Root. Vous voulez vraiment rester le vagrant utilisateur. Pour ce faire, vous devez autoriser n'importe qui à lancer l'interface graphique : sudo vim /etc/X11/Xwrapper.config et le modifier en allowed_users=anybody .
  2. Ensuite, installez les outils invités de VirtualBox avant démarrer l'interface graphique. Cela vous donnera une résolution d'écran saine, une souris intégrée, etc. $ sudo apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11 $ sudo VBoxClient-all
  3. Ce n'est que maintenant que vous devez démarrer l'interface graphique en tant qu'utilisateur de la fonction vagrant utilisateur, avec $ startxfce4& .

3voto

Terry Wang Points 5117

Mes deux cents

  • Assurez-vous que vous utilisez la dernière version de vagrant (1.3.3 maintenant) + VirtualBox (4.2.18) pour éviter les bugs.

  • Vous pouvez utiliser le shell script ou une commande en ligne pour installer un environnement de bureau ou un gestionnaire de fenêtres léger.

    Par exemple, installer LXDE sur la boîte de base d'Ubuntu 12.04 Precise à partir de vagrantbox.es

    Vagrant.configure("2") do |config|

    ... other configuration

    config.vm.provision "shell" do |s| s.inline = "apt-get install xfce4 -y" end end

  • Si vous construisez vos propres boîtes de base vagrant, assurez-vous de suivre le boîtier de base instructions d'empaquetage ou envisagez des outils comme packer (ou veewee) pour automatiser la construction.

1voto

Anthony Roberts Points 595

http://askubuntu.com/questions/300799/does-ubuntu-12-04-lts-32-bit-have-graphic-user-interface/300805#300805

"Après avoir installé le bureau, vous voudrez également installer GDM qui vous permettra de démarrer directement dans un environnement graphique. Vous voudrez aussi le configurer."

Alors peut-être ajouter ceci ?

Vagrant::Config.run do |config|
    config.vm.provision :shell, :inline => "sudo apt-get install gdm"
    config.vm.provision :shell, :inline => "sudo dpkg-reconfigure gdm"
end

1voto

Kief Points 1772

Vous pouvez également envisager d'utiliser Packer pour créer des images VirtualBox à l'usage des développeurs.

Plutôt que de partager le fichier Vagrant que chaque développeur utilise pour construire et exécuter sa VM, vous auriez un modèle d'encapsulation (json) qui est utilisé pour créer une image VM. Les développeurs téléchargent ou copient l'image et l'exécutent localement, directement dans VB, sans avoir à la construire eux-mêmes.

La plupart des boîtes de base Vagrant partagées publiquement sont créées avec Packer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X