Die Entwicklungsumgebung meines Unternehmens basiert auf virtuellen Maschinen, die auf VirtualBox laufen. Wir möchten noch einen Schritt weitergehen und die Funktionen von Vagrant nutzen, um die Beschreibung der Maschine in einer Textdatei zu haben und dann die Maschine auf Basis dieser Textdatei "anheben" zu können. In Kombination mit der Marionette würde dies das Problem lösen, dass auf der VM unterschiedliche Softwareversionen installiert sind.
Vagrant scheint sich jedoch sehr darauf konzentriert zu haben, sich auf dem Host zu entwickeln und die Maschine im Hintergrund zu lassen. Wir müssten unsere Entwicklungsumgebung in der Maschine haben, also benötigen wir eine vollständige grafische Benutzeroberfläche. Wenn Sie "vagrant up" eingeben, sollte eine Maschine mit einer vollständigen Desktopumgebung (XFCE, KDE ...) erscheinen.
Bisher habe ich aus einer Xubuntu-Distribution eine "Basis" -Box erstellt. Wenn ich jedoch "vagrant up" tippe, obwohl der Desktop angezeigt wird und ich mich richtig anmelden kann, friert Vagrant bei der Meldung "Warten auf Maschine wird gestartet. Dies kann einige Minuten dauern ...". Nach einer Weile stürzt Vagrant wegen Zeitüberschreitung ab. Es werden also keine freigegebenen Ordner erstellt und das Paket Provisioner -puppet- wird nicht ausgeführt.
Wie erstelle ich eine virtuelle Maschine mit einer kompletten GUI mit Vagrant?
Ich habe gerade mit drei Schritten gearbeitet. Der Ratschlag von askubuntu.com
hat für mich nicht ganz funktioniert, probieren Sie also diese vereinfachte Version:
vagrant ssh
booten können.Vagrantfile
:config.vm.provider: virtualbox do | vb | vb.gui = true ende
xfce4
installieren und starten. Verwenden Sie vagrant ssh
und:Sudo apt-get install xfce4 Sudo startxfce4 &
Das ist es, Sie sollten in einer xfce4
-Sitzung gelandet sein.
Update: Für ein besseres Erlebnis empfehle ich folgende Verbesserungen:
vagrant
-Benutzer bleiben. Dazu müssen Sie jedem Benutzer erlauben, die GUI zu starten: Sudo vim /etc/X11/Xwrapper.config
und in allowed_users=anybody
zu bearbeiten.$ Sudo apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11 $ Sudo VBoxClient-all
vagrant
-Benutzer mit $ startxfce4&
starten. Update 2: Habe dies heute versucht und das VBoxClient-all
-Skript wird nicht immer installiert. Wenn es fehlt, können Sie es durch das Äquivalent ersetzen:
Sudo VBoxClient - Clipboard Sudo VBoxClient --draganddrop__. Sudo VBoxClient --display Sudo VBoxClient --checkhostversion Sudo VBoxClient --s Seamless
Here's Airs ausgezeichnete Antwort in Form einer Vagrantfile
Vagrant.configure(2) do |config|
# Ubuntu 15.10
config.vm.box = "ubuntu/wily64"
config.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
vb.gui = true
end
# Install xfce and virtualbox additions
config.vm.provision "Shell", inline: "Sudo apt-get update"
config.vm.provision "Shell", inline: "Sudo apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11"
# Permit anyone to start the GUI
config.vm.provision "Shell", inline: "Sudo sed -i 's/allowed_users=.*$/allowed_users=anybody/' /etc/X11/Xwrapper.config"
end
Vm starten
vagrant up
Melden Sie sich mit Benutzername: vagrant
, Kennwort: vagrant
über die Anmeldeaufforderung auf der Virtualbox-Benutzeroberfläche an.
Starten Sie xfce
startx
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 Light-Window-Manager zu installieren
Zum Beispiel installieren Sie LXDE auf Ubuntu 12.04 Precise Base Box aus vagrantbox.es .
Vagrant.configure("2") do |config|
# ... other configuration
config.vm.provision "Shell" do |s|
s.inline = "apt-get install lubuntu-desktop -y"
end
end
Ich verwende Ubuntu Desktop Image, es funktioniert gut mit zwei Monitoren unter Windows mit Virtual Box Provider.
Vagrant.configure(2) do |config|
config.vm.box = "box-cutter/ubuntu1404-desktop"
config.ssh.forward_agent = true
config.vm.network "forwarded_port", guest: 8080, Host: 8080
config.vm.network "forwarded_port", guest: 3000, Host: 3000
config.vm.synced_folder "../../git", "/home/vagrant/git"
config.vm.provider "virtualbox" do |vb|
vb.gui = true
vb.customize ["modifyvm", :id, "--monitorcount", "2"]
vb.memory = "2048"
end
end
Sie können auch Packer verwenden, um VirtualBox-Images für Entwickler zu erstellen.
Anstatt die Vagrantfile gemeinsam zu nutzen, die Entwickler zum Erstellen und Ausführen ihrer VM verwenden, haben Sie eine Packer-Vorlage (json), die zum Erstellen eines VM - Images verwendet wird. Entwickler laden oder kopieren das Image und führen es lokal aus, direkt in VB, ohne es selbst erstellen zu müssen.
Viele der öffentlich gemeinsam genutzten Vagrant-Basisboxen werden mit Packer erstellt.
Hier ist ein leicht angepasstes Vagrantfile für Ubuntu 18.04 LTS/bionic - dank der Antworten von Air und Nik und diesem Beitrag . Standard = 10 GB).
Die VM enthält einen LightDM-Anmeldebildschirm.
Update: Ich habe aus diesem Beispiel ein GitHub-Repo erstellt und viele Software-Pakete für Frontend + Backend-Entwicklung hinzugefügt.
# Optional - enlarge disk:
#vagrant plugin install vagrant-disksize
vagrant up
vagrant reload
# After reboot, the VM screen should show the LightDM login screen.
# Log in as user "vagrant", password "vagrant".
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/bionic64"
# Optional - enlarge disk (will also convert the format from VMDK to VDI):
#config.disksize.size = "50GB"
config.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
vb.gui = true
end
# https://askubuntu.com/questions/1067929/on-18-04-package-virtualbox-guest-utils-does-not-exist
config.vm.provision "Shell", inline: "Sudo apt-add-repository multiverse && Sudo apt-get update"
# Install xfce and virtualbox additions.
# (Not sure if these packages could be helpful as well: virtualbox-guest-utils-hwe virtualbox-guest-x11-hwe)
config.vm.provision "Shell", inline: "Sudo apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11"
# Permit anyone to start the GUI
config.vm.provision "Shell", inline: "Sudo sed -i 's/allowed_users=.*$/allowed_users=anybody/' /etc/X11/Xwrapper.config"
# Optional: Use LightDM login screen (-> not required to run "startx")
config.vm.provision "Shell", inline: "Sudo apt-get install -y lightdm lightdm-gtk-greeter"
# Optional: Install a more feature-rich applications menu
config.vm.provision "Shell", inline: "Sudo apt-get install -y xfce4-whiskermenu-plugin"
end
Nach der Installation des Desktops möchten Sie auch GDM installieren, das können Sie direkt in eine grafische Umgebung booten. Sie werden auch will es konfigurieren.
Also vielleicht das hinzufügen?
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
Zusätzlich zu Billmalarkys Kommentar zu Fedora 20 war vor dem Start von xfce Folgendes erforderlich:
Hier ist der Code:
config.vm.provision "Shell", inline: <<-Shell
#Install Virtual Box guest additions from rpmfusion repos
cd /vagrant
yum install -y rpmfusion-free-release-20.noarch.rpm
yum install -y rpmfusion-nonfree-release-20.noarch.rpm
yum update -y
yum install -y VirtualBox-guest
#Add XFCE desktop to Fedora server
yum groups mark install 'graphical_environment'
yum groupinstall -y "Xfce"
yum install -y xorg-x11-drivers
Shell
Wie die xfce4
-Lösung von @Air. Einmal hatte ich Erfolg, aber heute bin ich mit Ubuntu16.04 gescheitert. Ich habe diesen Fehler erhalten:
xrdb can't open display 1
Zum Glück fand ich diese Arbeiten:
startx
Ich habe Niks Antwort ein wenig gepatcht, um HTTP 404 zu vermeiden:
Vagrant.configure(2) do |config|
# Ubuntu 15.10
config.vm.box = "bento/ubuntu-18.04"
config.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
vb.gui = true
end
# Install xfce and virtualbox additions
config.vm.provision "Shell", inline: "Sudo apt-get update"
config.vm.provision "Shell", inline: "Sudo apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11"
# Permit anyone to start the GUI
config.vm.provision "Shell", inline: "Sudo sed -i 's/allowed_users=.*$/allowed_users=anybody/' /etc/X11/Xwrapper.config"
end