Vagrant startet nicht. Der Benutzer, der die VM erstellt hat, stimmt nicht mit dem aktuellen Benutzer überein

123

Ich habe versucht, meine Vagabundmaschine zu starten, also habe ich zu dem Ordner navigiert, in dem sich meine Vagabunddatei befindet, und Folgendes verwendet:

vagrant up && vagrant ssh

aber ich habe die folgende Fehlermeldung erhalten:

Die VirtualBox-VM wurde mit einem Benutzer erstellt, der nicht mit dem aktuellen Benutzer übereinstimmt, auf dem Vagrant ausgeführt wird. Für VirtualBox muss derselbe Benutzer zum Verwalten der erstellten VM verwendet werden. Bitte führen Sie Vagrant mit diesem Benutzer erneut aus. Dies ist kein Vagrant-Problem.

Die zum Erstellen der VM verwendete UID war: 0 Ihre UID lautet: 501

Ich habe es auch mit sudo versucht, aber das hat auch nicht funktioniert.

Muss ich die UIDs wechseln? Und wie würde ich das machen?

Luke
quelle

Antworten:

252

Ich bin heute auf das gleiche Problem gestoßen.
Ich habe meine UID bearbeitet, indem ich die Datei geöffnet .vagrant/machines/default/virtualbox/creator_uidund die 501 in eine 0 geändert habe .

Nachdem ich die Datei gespeichert hatte, funktionierte der Befehl vagrant up wie ein Champion.

NB: Der .vagrantOrdner befindet sich im selben Verzeichnis wie Ihre Vagrant-Datei, in der Sie ausgeführt habenvagrant up

Fred
quelle
64
Ich befand mich in der gleichen Situation, ich hatte einen Teerball von einer Ubuntu-Maschine abgeholt. Durch einfaches Entfernen des rm -rf .vagrantin Ubuntu erstellten Verzeichnisses wurde das Problem ebenfalls behoben.
Jeff Sheffield
1
//, Wow, danke, @Fred! Stackoverflow bietet uns von seiner besten Seite eine präzise, ​​schwer zu findende Lösung von jemandem, der sich zuvor damit befasst hat. Wo finde ich den .vagrantOrdner normalerweise auf Unix-basierten Computern?
Nathan Basanese
1
Ich bin mir nicht sicher, @Nathan. Können Sie einen Suchbefehl für die Datei creator_uid ausführen? Versuchen Sie, in der Befehlszeile "generate_uid zu finden", um den Pfad zur zu bearbeitenden Datei zu finden.
Fred
4
In meinem Fall enthielt die creator_uid "90210", aber meine UID ist 502. Anstatt die UID in der Datei auf 0 zu ändern, wie diese Lösung vorschlug, habe ich sie auf 502 geändert. Hat gut funktioniert.
LS
5
@ NathanBasanese .vagrantOrdner ist an der gleichen Stelle, die Sie ausgeführt habenvagrant up
Harish Reddy
33

Ist in einer etwas anderen Situation auf dieses Problem gestoßen. Das Problem war, dass ".vagrant" in das Git-Repo eingecheckt wurde und der Committer unter einer anderen UID lief als ich.

Lösung: Fügen Sie .vagrant zu .gitignore hinzu.

Chris Cogdon
quelle
15
Dies war das Problem, mit dem ich konfrontiert war; Ein einfaches Hinzufügen .vagrantzu .gitignorewird das Problem jedoch nicht lösen - YMMV, git rm -rf .vagrantsollte aber auch ausgeführt werden.
Marco Massenzio
@marco: Du hast absolut recht. Wenn ".vagrant" zum Repo hinzugefügt wurde, ist es zu spät, es anschließend zu .gitignore hinzuzufügen :)
Chris Cogdon
8

Ich lief in das gleiche Problem, aber in meinem Fall war es , weil ich ran hatte vagrant upunter sudo, und als ich zu ihm kam später wieder hatte ich vergessen.

Dummer Fehler, aber ich bin sicher, es ist nicht das erste Mal, dass jemand passiert ist :)

ConorLuddy
quelle
1
Gleiches Problem hier, vergessen zu laufen sudo. Aber die Fehlermeldung ist leider nicht sehr bezeichnend dafür.
Zac Blazic
5

Ich habe versucht, die ID in .vagrant \ Machines \ Default \ Virtualbox \ Creator_UID zu ändern, und das hat bei mir nicht funktioniert, aber beim Löschen der Datei hat Creator_UID den Trick gemacht.

Canje027
quelle
3

Ändern Sie einfach die Benutzer-ID hier .vagrant / machine / default / virtualbox / creator_uid

Oleg Tokar
quelle
1

Laut VirtualBox-Benutzerhandbuch :

Aus Sicherheitsgründen ermöglicht die Linux-Implementierung des internen Netzwerks nur VMs, die unter derselben Benutzer-ID ausgeführt werden, ein internes Netzwerk einzurichten.

Mit anderen Worten, Sie müssen zu root ( UID 0) wechseln , um es auszuführen.

dmargol1
quelle
10
Sollte nicht als sudo ausgeführt werden, löschen Sie einfach Ihr .vagrant-Verzeichnis und führen Sie es als Benutzer aus
Jeremy
1

Möglicherweise haben Sie den folgenden Befehl ausgeführt: sudo vagrant up

Dies würde bedeuten, dass Sie als normaler Benutzer den /.vagrantOrdner und die Dateien nicht sehen oder sogar löschen können.

Wenn ja, führen Sie einfach Folgendes aus: sudo vagrant destroy -f

Dann sollten Sie in der Lage sein (wie Ihr normales Benutzerkonto): vagrant up

Brandon
quelle
0

Führen Sie die folgenden Befehle aus:

bash
sudo vagrant up
vixadd
quelle
0

Ich hatte das gleiche Problem, nachdem ich einen neuen Computer bekommen hatte. Anstatt alle Dateien von meinem alten Computer zu kopieren, musste ich die vagabundierenden Projekte erneut aus dem Git-Repository auschecken. Danach hat es gut vagrant upfunktioniert.

Matschmann
quelle
0

Nur um Fred's https://stackoverflow.com/a/32256848/2065804 Antwort hinzuzufügen .

Stellen Sie sicher, dass Sie den richtigen VM-Computer geändert haben. Zum Beispiel ist mein VM-Name NICHT Standard, sondern heißt homestead-7.

Der Weg zum richtigen ist also:

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

und nicht:

.vagrant/machines/default/virtualbox/creator_uid

Dieser Fehler ist mir passiert, als ich meinen Mac auf einen anderen Mac umgestellt habe.

Abdul Rahman Ein Samad
quelle
0

Entfernen Sie den Inhalt von .vagrant hidden dir im aktuellen Arbeitsverzeichnis und führen Sie den Befehl vagrant up erneut aus. Fehler aufgrund des Kopierens / Sicherns von Vagranfile / s von einem System auf ein anderes System. Das Missverständnis der Benutzer-ID mit dem Vagrant, um die Umgebung aufzurufen. Ich hoffe, es hilft beim Jubeln. !! :)) Wenn Sie diesen Ordner nicht löschen möchten, können Sie die UID des aktuellen Benutzers in der Datei im versteckten Verzeichnis des aktuellen Arbeitsverzeichnisses aktualisieren, dh .vagrant / machine / jenkins / virtualbox $ vim creator_uid

Siva Krishna
quelle
0

Ich habe die gleiche Situation erlebt , aber ich habe eine Vagrant - Datei mit mehreren Maschinen .

Um die alte UID (1001) durch die neue (1000) zu ersetzen, habe ich den folgenden Befehl verwendet:

for i in $(find . -type f -iname "creator_uid" ) ; do echo 1000 > $i ; done
Rodrigo Justino da Costa
quelle
0

Ich hatte das gleiche Problem, das ich zuvor vergessen sudohatte vagrant up, Sie müssen es nur sudo vagrant upim Ordner Ihrer Vagrant-Datei ausführen .

Luis Matos
quelle
0

Ich habe Multi-Machine Vagrant-Datei. Ich habe das überprüft creator_uidund es kann 0aber immer noch nicht geladen werden. Also habe ich die creator_uidDatei für alle Multi-Machine gelöscht und es hat funktioniert. Pfad sollte sein.vagrant\machines\<machine_name>\virtualbox

vkrams
quelle