Die Entwicklungsumgebung meines Unternehmens basiert auf virtuellen Maschinen, die auf VirtualBox ausgeführt werden. Wir möchten noch einen Schritt weiter gehen und die Funktionen von Vagrant nutzen, um die Beschreibung der Maschine in einer Textdatei zu haben und diese Maschine dann basierend auf dieser Textdatei "anheben" zu können. In Kombination mit Puppet würde dies das Problem lösen, dass auf jedem Benutzer unterschiedliche Softwareversionen in der VM installiert sind.
Vagrant scheint sich jedoch sehr darauf zu konzentrieren, sich auf dem Host zu entwickeln und die Maschine im Hintergrund zu lassen. Wir müssten unsere Entwicklungsumgebung auf dem Computer haben, daher benötigen wir eine vollständige GUI. Wenn Sie also "vagrant up" eingeben, sollte ein Computer mit einer vollständigen Desktop-Umgebung (XFCE, KDE ...) angezeigt werden.
Bisher habe ich es geschafft, eine "Basis" -Box aus einer Xubuntu-Distribution zu erstellen. Wenn ich jedoch "vagrant up" eingebe, obwohl der Desktop angezeigt wird und ich mich ordnungsgemäß anmelden kann, friert Vagrant bei der Meldung "Warten auf den Start des Computers. Dies kann einige Minuten dauern ..." ein. Nach einer Weile stürzt Vagrant aufgrund eines Timeouts ab. Daher werden keine freigegebenen Ordner erstellt und der Paket-Provisioner -puppet- wird nicht ausgeführt.
Wie erstelle ich eine virtuelle Maschine mit einer vollständigen Benutzeroberfläche unter Verwendung von Vagrant?
Antworten:
Ich habe das gerade mit drei Schritten zum Laufen gebracht. Der Rat von
askubuntu.com
hat bei mir nicht ganz funktioniert. Probieren Sie diese vereinfachte Version aus:vagrant ssh
.Vagrantfile
:xfce4
. Verwenden Sievagrant ssh
und:Wenn Sie diese Ubuntu-Umgebung zum ersten Mal ausführen, müssen Sie vor der Installation von xfce4 den folgenden Befehl ausführen:
Das war's, du solltest in einer
xfce4
Sitzung gelandet sein .Update: Für eine bessere Erfahrung empfehle ich diese Verbesserungen:
vagrant
Benutzer bleiben . Dazu müssen Sie jedem erlauben, die GUI zu starten:sudo vim /etc/X11/Xwrapper.config
und sie zu bearbeitenallowed_users=anybody
.vagrant
Benutzer mit starten$ startxfce4&
.Update 2: Versuchte dies heute und das
VBoxClient-all
Skript ist nicht immer installiert. Wenn es fehlt, können Sie es durch das Äquivalent ersetzen:quelle
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| ... done
Methode der Vagrant-Datei enthalten sein muss.startxfce4
so aus, als ob es nach der Installation unter Ubuntu 16.04 (xenial) als Nicht-Root ausgeführt werden kannxserver-xorg-legacy
Hier ist die ausgezeichnete Antwort von Air in Form eines
Vagrantfile
So starten Sie die VM
Login mit Benutzername :
vagrant
, Passwort:vagrant
über die Login-Eingabeaufforderung auf der Virtualbox-GUI.Starten Sie xfce
quelle
xfce4
. Es funktioniert jetzt, aber gibt es eine Möglichkeit, das Login zu überspringen und dasxfce4
standardmäßig zu starten ?xfce4
"? Ich bekomme den gleichen Fehler, wenn ich startx nachvagrant ssh
Meine 2 Cent
Stellen Sie sicher, dass Sie den neuesten Vagrant (1.3.3 jetzt) + VirtualBox (4.2.18) ausführen, um Fehler zu vermeiden.
Sie können ein Shell-Skript oder einen Inline-Befehl verwenden, um eine Desktop-Umgebung oder einen leichten Fenstermanager zu installieren
Installieren Sie beispielsweise LXDE auf Ubuntu 12.04 Precise Base Box von vagrantbox.es
quelle
Hier ist eine leicht angepasste Vagrant-Datei für Ubuntu 18.04 LTS / bionic - dank der Antworten von Air und Nik. In diesem Beitrag wird erläutert, wie die Festplattengröße bei Verwendung von VirtualBox erhöht werden kann (Standard = 10 GB).
Die VM enthält einen LightDM-Anmeldebildschirm.
Update: Ich habe aus diesem Beispiel ein GitHub-Repo erstellt und viele Softwarepakete für die Frontend + Backend-Entwicklung hinzugefügt.
quelle
Ich verwende Ubuntu Desktop Image, es funktioniert gut mit zwei Monitoren unter Windows mit Virtual Box Provider.
quelle
vb.customize ["modifyvm", :id, '--audio', 'dsound', '--audiocontroller', 'ac97']
um den Ton von der VM zu bekommen (falls erforderlich)Sie können auch Packer verwenden , um VirtualBox-Images für Entwickler zu erstellen.
Anstatt die Vagrant-Datei freizugeben, mit der Entwickler ihre VM erstellen und ausführen, hätten Sie eine Packer-Vorlage (json), mit der ein VM-Image erstellt wird. Entwickler laden das Image herunter oder kopieren es und führen es lokal direkt in VB aus, ohne es selbst erstellen zu müssen.
Viele der öffentlich freigegebenen Vagrant-Basisboxen werden mit Packer erstellt.
quelle
/ubuntu/300799/does-ubuntu-12-04-lts-32-bit-have-graphic-user-interface/300805#300805
Also vielleicht hinzufügen?
quelle
Zusätzlich zu dem obigen Kommentar von billmalarky war auf fedora 20 vor dem Start von xfce Folgendes erforderlich:
Hier ist der Code:
quelle
Wie die
xfce4
Lösung von @Air. Früher hatte ich Erfolg, aber heute habe ich mit ubuntu16.04 versagt. Ich habe diesen Fehler erhalten:Aber zum Glück fand ich das funktioniert:
quelle
Ich habe Niks Antwort ein wenig gepatcht, um HTTP 404 zu vermeiden:
quelle
Ich sehe, dass einige Leute Probleme mit "startx: Befehl nicht gefunden" haben. Ich hatte dies auch und es war, weil ich Login und Startx versuchte, bevor die erste Bereitstellung abgeschlossen war. Sei geduldig, hol dir einen Kaffee. Überprüfen Sie das ursprüngliche Konsolenfenster, um festzustellen, was gerade passiert, wenn die Bereitstellung abgeschlossen ist.
quelle