Środowisko programistyczne mojej firmy oparte jest na maszynach wirtualnych działających na VirtualBox. Chcielibyśmy pójść o krok dalej i wykorzystać możliwości Vagranta, aby mieć opis maszyny w pliku tekstowym, a następnie móc „podnieść” tę maszynę na podstawie tego pliku tekstowego. W połączeniu z marionetką rozwiązałoby to problem polegający na tym, że każdy ma różne wersje oprogramowania zainstalowane na maszynie wirtualnej.
Jednak Vagrant wydaje się być bardzo skoncentrowany na rozwijaniu się na hoście, pozostawiając maszynę w tle. Musielibyśmy mieć nasze środowisko programistyczne w maszynie, więc potrzebowalibyśmy pełnego GUI, więc podczas wpisywania „vagrant up” powinna pojawić się maszyna z kompletnym środowiskiem graficznym (XFCE, KDE…).
Jak dotąd udało mi się stworzyć "podstawowe" pudełko z dystrybucji Xubuntu. Ale kiedy piszę „vagrant up”, mimo że pojawia się pulpit i mogę się poprawnie zalogować, Vagrant zawiesza się po wyświetleniu komunikatu „Oczekiwanie na uruchomienie komputera. Może to potrwać kilka minut ...”. Po chwili Vagrant wywala z powodu przekroczenia limitu czasu. Dlatego foldery współdzielone nie są tworzone ani nie jest wykonywany program obsługi pakietów -puppet-.
Jak stworzyć maszynę wirtualną z pełnym GUI przy użyciu Vagrant?
Odpowiedzi:
Po prostu działam w trzech krokach. Porady
askubuntu.com
udzielone przeze mnie nie do końca zadziałały, więc wypróbuj tę uproszczoną wersję:vagrant ssh
.Vagrantfile
:xfce4
. Użyjvagrant ssh
i:Jeśli po raz pierwszy używasz tego środowiska Ubuntu, przed zainstalowaniem xfce4 musisz uruchomić następujące polecenie:
To wszystko, powinieneś trafić na
xfce4
sesję.Aktualizacja: aby uzyskać lepsze wrażenia, polecam te ulepszenia:
vagrant
użytkownikiem. Aby to zrobić, musisz zezwolić każdemu na uruchamianie GUI:sudo vim /etc/X11/Xwrapper.config
i edycję go naallowed_users=anybody
.vagrant
użytkownik, z$ startxfce4&
.Aktualizacja 2: Wypróbowałem to dzisiaj, a
VBoxClient-all
skrypt nie zawsze jest instalowany. Jeśli go brakuje, możesz zastąpić go odpowiednikiem:źródło
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| ... done
metodzie pliku Vagrantfile.startxfce4
to, że po zainstalowaniu można go uruchomić jako użytkownik inny niż root w systemie Ubuntu 16.04 (xenial)xserver-xorg-legacy
Oto doskonała odpowiedź Air w postaci pliku
Vagrantfile
Aby uruchomić vm
Zaloguj się, podając nazwę użytkownika :,
vagrant
hasło:vagrant
poprzez monit logowania w interfejsie użytkownika virtualbox.Uruchom xfce
źródło
xfce4
. Teraz działa, ale czy jest sposób, aby pominąć logowanie ixfce4
domyślnie uruchomić ?xfce4
”? Otrzymuję ten sam błąd podczas uruchamiania startx povagrant ssh
Moje 2 centy
Upewnij się, że korzystasz z najnowszego vagranta (teraz 1.3.3) + VirtualBox (4.2.18), aby uniknąć błędów.
Możesz użyć skryptu powłoki lub polecenia wbudowanego, aby zainstalować środowisko pulpitu lub lekkiego menedżera okien
Na przykład zainstalować LXDE na górze Ubuntu 12.04 Precise polu bazowej z vagrantbox.es
źródło
Oto nieco dostosowany plik Vagrantfile dla Ubuntu 18.04 LTS / bionic - dzięki odpowiedziom Air i Nika oraz ten post wyjaśniający, jak zwiększyć rozmiar dysku podczas korzystania z VirtualBox (domyślnie = 10 GB).
Maszyna wirtualna zawiera ekran logowania LightDM.
Aktualizacja: utworzyłem repozytorium GitHub na podstawie tego przykładu i dodałem wiele pakietów oprogramowania do programowania frontend + backend.
źródło
Używam obrazu pulpitu Ubuntu, działa dobrze z dwoma monitorami w systemie Windows z dostawcą wirtualnych skrzynek.
źródło
vb.customize ["modifyvm", :id, '--audio', 'dsound', '--audiocontroller', 'ac97']
aby uzyskać dźwięk z vm (w razie potrzeby)Możesz również rozważyć użycie programu Packer do tworzenia obrazów VirtualBox dla programistów.
Zamiast udostępniać plik Vagrantfile, którego programiści używają do budowania i uruchamiania swoich maszyn wirtualnych, miałbyś szablon pakera (json), który jest używany do tworzenia obrazu maszyny wirtualnej. Programiści pobierają lub kopiują obraz i uruchamiają go lokalnie, bezpośrednio w VB, bez konieczności samodzielnego tworzenia.
Wiele z publicznie udostępnionych pudełek bazowych Vagrant jest tworzonych za pomocą Packera.
źródło
/ubuntu/300799/does-ubuntu-12-04-lts-32-bit-have-graphic-user-interface/300805#300805
Więc może to dodać?
źródło
Poprawiłem trochę odpowiedź Nik, aby uniknąć HTTP 404:
źródło
Dodając do powyższego komentarza billmalarky'ego, na fedorze 20 przed uruchomieniem xfce konieczne było:
Oto kod:
źródło
Podobnie jak
xfce4
rozwiązanie @Air. Kiedyś odniosłem sukces, ale dziś nie udało mi się z Ubuntu16.04. Mam ten błąd:Ale na szczęście okazało się, że to działa:
źródło
Widzę, że kilka osób ma problemy z poleceniem „startx: nie znaleziono polecenia”. Miałem to też, a to dlatego, że próbowałem zalogować się i startx przed zakończeniem pierwszej obsługi administracyjnej. Bądź cierpliwy, idź na kawę. Sprawdź oryginalne okno konsoli, aby zobaczyć, co się dzieje, zwłaszcza po zakończeniu obsługi administracyjnej.
źródło