Vagrant nie uruchamia się. Użytkownik, który utworzył maszynę wirtualną, nie pasuje do bieżącego użytkownika

124

Próbowałem uruchomić moją włóczęgę, więc przeszedłem do folderu, w którym znajduje się mój plik włóczęgi, i użyłem:

vagrant up && vagrant ssh

ale otrzymałem następujący komunikat o błędzie:

Maszyna wirtualna VirtualBox została utworzona z użytkownikiem, który nie pasuje do bieżącego użytkownika z uruchomionym programem Vagrant. VirtualBox wymaga, aby ten sam użytkownik był używany do zarządzania utworzoną maszyną wirtualną. Uruchom ponownie Vagrant z tym użytkownikiem. To nie jest kwestia Vagrant.

Identyfikator UID użyty do utworzenia maszyny wirtualnej to: 0 Twój UID to: 501

Próbowałem też z sudo, ale to też nie działało.

Czy muszę zmienić UID? Jak bym to zrobił?

Łukasz
źródło

Odpowiedzi:

253

Dzisiaj napotkałem ten sam problem.
Edytowałem mój UID , otwierając plik .vagrant/machines/default/virtualbox/creator_uidi zmieniając 501 na 0 .

Po zapisaniu pliku polecenie vagrant up działało jak mistrz.

Uwaga: .vagrantfolder znajduje się w tym samym katalogu, co plik Vagrantfile, w którym został uruchomionyvagrant up

Fred
źródło
64
Znalazłem się w tej samej sytuacji, kiedy sparowałem tarballa z maszyny ubuntu. Dlatego samo usunięcie katalogu, rm -rf .vagrantktóry został utworzony w Ubuntu, również rozwiązało problem.
Jeff Sheffield
1
//, Wow, dzięki, @Fred! Stackoverflow służy nam w najlepszym wydaniu dzięki tego rodzaju precyzyjnym, trudnym do znalezienia rozwiązaniom od kogoś, kto miał z tym wcześniej do czynienia. Gdzie zazwyczaj znajdę .vagrantfolder na komputerach z systemem Unix?
Nathan Basanese
1
Nie jestem pewien, @Nathan. Czy możesz uruchomić polecenie lokalizowania dla pliku creator_uid? Spróbuj użyć polecenia „locate creator_uid” w wierszu poleceń, aby znaleźć ścieżkę do pliku do edycji.
Fred
4
W moim przypadku creator_uid zawierał „90210”, ale mój UID to 502. Zamiast zmienić UID w pliku na 0, jak sugerowało to rozwiązanie, zmieniłem go na 502. Działało dobrze.
LS
5
.vagrantFolder @NathanBasanese znajduje się w tym samym miejscu, w którym prowadziłeśvagrant up
Harish Reddy,
34

Wpadłem na ten problem w nieco innej sytuacji. Problem polegał na tym, że plik „.vagrant” został wpisany do repozytorium git, a program Committer działał pod innym UID niż ja.

Rozwiązanie: dodaj .vagrant do .gitignore.

Chris Cogdon
źródło
15
To był problem, przed którym stanąłem; Jednakże, po prostu dodając .vagrantdo .gitignorebędzie nie rozwiąże problemu - YMMV, ale git rm -rf .vagrantpowinien być prowadzony zbyt.
Marco Massenzio
@marco: Masz całkowitą rację. jeśli „.vagrant” został dodany do repozytorium, dodanie go później do .gitignore jest już za późno :)
Chris Cogdon.
8

Wpadłem na ten sam problem, ale w moim przypadku to dlatego, że pobiegłem vagrant uppod wodą sudo, a kiedy wróciłem do tego później, zapomniałem.

Głupi błąd, ale jestem pewien, że to nie pierwszy raz, kiedy ktoś się przydarzył :)

ConorLuddy
źródło
1
Ten sam problem, zapomniałem biegać pod sudo. Ale komunikat o błędzie niestety nie wskazuje na to zbytnio.
Zac Blazic,
5

Próbowałem zmienić identyfikator w .vagrant \ machines \ default \ virtualbox \ creator_uid i to nie zadziałało, ale usunięcie pliku, creator_uid załatwiło sprawę.

Canje027
źródło
3

po prostu zmień tutaj identyfikator użytkownika .vagrant / Machines / default / virtualbox / creator_uid

Oleg Tokar
źródło
1

Zgodnie z instrukcją obsługi VirtualBox :

Ze względów bezpieczeństwa implementacja sieci wewnętrznej w systemie Linux pozwala tylko maszynom wirtualnym działającym pod tym samym identyfikatorem użytkownika na ustanowienie sieci wewnętrznej.

Innymi słowy, musisz przełączyć się na root ( UID 0), aby go uruchomić.

dmargol1
źródło
10
Nie powinno działać jako sudo, po prostu usuń katalog .vagrant i uruchom jako twój użytkownik
Jeremy
1

Możliwe, że uruchomiłeś polecenie: sudo vagrant up

Oznaczałoby to, że jako zwykły użytkownik nie możesz zobaczyć ani nawet usunąć /.vagrantfolderu i plików.

Jeśli tak, po prostu uruchom: sudo vagrant destroy -f

Wtedy powinieneś być w stanie uruchomić (jako zwykłe konto użytkownika): vagrant up

brandon
źródło
0

Uruchom następujące polecenia:

bash
sudo vagrant up
vixadd
źródło
0

Miałem ten sam problem po zakupie nowego komputera. Zamiast kopiować wszystkie pliki z mojego starego komputera, musiałem sprawdzić Vagrant projekty ponownie z repozytorium git. Potem vagrant updziałało dobrze.

matschmann
źródło
0

Wystarczy dodać do https://stackoverflow.com/a/32256848/2065804 odpowiedzi Freda .

Upewnij się, że zmieniłeś poprawną maszynę VM. Na przykład moja nazwa maszyny wirtualnej NIE jest domyślna, ale nazywa się ją homestead-7.

Ścieżka do właściwego to:

.vagrant/machines/homestead-7/virtualbox/creator_uid

i nie:

.vagrant/machines/default/virtualbox/creator_uid

Ten błąd przydarzył mi się, gdy zmieniłem komputer Mac na inny komputer Mac.

Abdul Rahman A Samad
źródło
0

Usuń zawartość ukrytego katalogu .vagrant w bieżącym katalogu roboczym i ponownie uruchom polecenie vagrant up. Błąd z powodu kopiowania / tworzenia kopii zapasowych plików Vagranfile / s z jednego systemu do innego systemu. Niezgodność identyfikatora użytkownika z Vagrantem, aby wspomnieć o środowisku .. mam nadzieję, że pomoże to wiwatować .. !! :)) jeśli nie chcesz usuwać tego folderu, możesz zaktualizować identyfikator bieżącego użytkownika w pliku w ukrytym katalogu bieżącego katalogu roboczego, tj. vagrant / machines / jenkins / virtualbox $ vim creator_uid

śiwa kriszna
źródło
0

Miałem taką samą sytuację, ale mam plik Vagrantfile obsługujący wiele maszyn .

Aby zastąpić stary identyfikator UID (1001) nowym (1000), użyłem następującego polecenia:

for i in $(find . -type f -iname "creator_uid" ) ; do echo 1000 > $i ; done
Rodrigo Justino da Costa
źródło
0

Miałem ten sam problem, o którym zapomniałem sudowcześniej umieścić vagrant up, wystarczy wykonać sudo vagrant upw folderze pliku włóczęgi.

luis matos
źródło
0

Mam plik włóczęgi Multi-Machine. Sprawdziłem creator_uidi 0nadal nie można go załadować. Więc usunąłem creator_uidplik dla wszystkich Multi-Machine i zadziałało. Ścieżka powinna być.vagrant\machines\<machine_name>\virtualbox

vkrams
źródło