L'environnement de développement de mon entreprise est basé sur des machines virtuelles, fonctionnant sur VirtualBox. Nous aimerions aller 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é à la marionnette, cela nous résoudrait le problème que tout le monde a différentes versions de logiciels installées dans la VM.
Cependant, Vagrant semble très concentré pour se développer sur l'hôte, laissant la machine en arrière-plan. Nous aurions besoin d'avoir notre environnement de développement dans la machine, donc nous aurions besoin d'une interface graphique complète, donc lorsque vous tapez "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 quand je tape "vagrant up", bien que le bureau apparaisse et que je puisse me connecter correctement, Vagrant se fige au message "En attente du démarrage de la machine. Cela peut prendre quelques minutes ...". Après un certain temps, Vagrant plante en raison du délai d'attente. Ainsi, les dossiers partagés ne sont pas créés, ni le fournisseur de packages -puppet- n'est exécuté.
Comment créer une machine virtuelle avec une interface graphique complète en utilisant vagrant?
Réponses:
Je viens de faire fonctionner cela en trois étapes. Les conseils de
askubuntu.com
ne fonctionnaient pas tout à fait pour moi, alors essayez cette version simplifiée:vagrant ssh
.Vagrantfile
:xfce4
. Utilisezvagrant ssh
et:Si c'est la première fois que vous exécutez cet environnement Ubuntu, vous devrez exécuter la commande suivante avant d'installer xfce4:
Voilà, vous devriez être débarqué dans une
xfce4
session.Mise à jour: pour une meilleure expérience, je recommande ces améliorations:
vagrant
utilisateur. Pour ce faire, vous devez autoriser n'importe qui à démarrer l'interface graphique:sudo vim /etc/X11/Xwrapper.config
et à la modifierallowed_users=anybody
.vagrant
qu'utilisateur, avec$ startxfce4&
.Mise à jour 2: essayé aujourd'hui et le
VBoxClient-all
script n'est pas toujours installé. S'il manque, vous pouvez le remplacer par l'équivalent:la source
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| ... done
méthode du Vagrantfile.startxfce4
peut être exécuté en tant que non-root sur Ubuntu 16.04 (xenial) après l'installationxserver-xorg-legacy
Voici l'excellente réponse d'Air sous la forme d'un
Vagrantfile
Pour démarrer le vm
Connexion avec nom d'utilisateur :,
vagrant
mot de passe:vagrant
via l'invite de connexion sur l'interface graphique de virtualbox.Démarrer xfce
la source
xfce4
. Cela fonctionne maintenant, mais y a-t-il un moyen de sauter la connexion et de démarrer lexfce4
par défaut?xfce4
"? J'obtiens la même erreur lors de l'exécution de startx aprèsvagrant ssh
Mes 2 cents
Assurez-vous que vous utilisez le dernier vagrant (1.3.3 maintenant) + VirtualBox (4.2.18) pour éviter les bogues.
Vous pouvez utiliser un script shell ou une commande en ligne pour installer un environnement de bureau ou un gestionnaire de fenêtres léger
Par exemple, installez LXDE sur Ubuntu 12.04 Precise base box de vagrantbox.es
la source
Voici un Vagrantfile légèrement adapté pour Ubuntu 18.04 LTS / bionic - grâce aux réponses d' Air et de Nik , et ce post expliquant comment augmenter la taille du disque lors de l'utilisation de VirtualBox (par défaut = 10 Go).
La VM comprend un écran de connexion LightDM.
Mise à jour: j'ai créé un repo GitHub à partir de cet exemple et ajouté de nombreux packages logiciels pour le développement frontend + backend.
la source
J'utilise l'image de bureau ubuntu, cela fonctionne bien avec deux moniteurs sur Windows avec un fournisseur de boîte virtuelle.
la source
vb.customize ["modifyvm", :id, '--audio', 'dsound', '--audiocontroller', 'ac97']
pour obtenir le son de la vm (si nécessaire)Vous pouvez également envisager d'utiliser Packer pour créer des images VirtualBox que les développeurs pourront utiliser.
Plutôt que de partager le Vagrantfile que les développeurs utilisent chacun pour créer et exécuter leur VM, vous auriez un modèle de packer (json) qui est utilisé pour créer une image de 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.
la source
/ubuntu/300799/does-ubuntu-12-04-lts-32-bit-have-graphic-user-interface/300805#300805
Alors peut-être ajouter ceci?
la source
J'ai un peu corrigé la réponse de Nik pour éviter HTTP 404:
la source
En ajoutant au commentaire de billmalarky ci-dessus, sur fedora 20, ce qui suit était nécessaire avant de démarrer xfce:
Voici le code:
la source
Comme la
xfce4
solution de @Air. Une fois, j'ai eu du succès, mais aujourd'hui j'ai échoué avec ubuntu16.04. J'ai eu cette erreur:Mais heureusement, j'ai trouvé cela fonctionne:
la source
Je vois que quelques personnes ont des problèmes avec "startx: command not found". J'avais cela aussi et c'était parce que j'essayais de me connecter et de startx avant la fin du premier approvisionnement. Soyez patient, allez prendre un café. Consultez la fenêtre de la console d'origine pour voir ce qui se passe, en particulier lorsque l'approvisionnement est terminé.
la source