Vagrant ne démarre pas. L'utilisateur qui a créé la VM ne correspond pas à l'utilisateur actuel

124

J'essayais de démarrer ma machine vagrant, alors j'ai navigué vers le dossier où se trouve mon vagrantfile et utilisé:

vagrant up && vagrant ssh

mais j'ai reçu le message d'erreur suivant:

La VM VirtualBox a été créée avec un utilisateur qui ne correspond pas à l'utilisateur actuel exécutant Vagrant. VirtualBox requiert que le même utilisateur soit utilisé pour gérer la VM qui a été créée. Veuillez réexécuter Vagrant avec cet utilisateur. Ce n'est pas un problème vagabond.

L'UID utilisé pour créer la VM était: 0 Votre UID est: 501

J'ai aussi essayé avec sudo, mais cela n'a pas fonctionné non plus.

Dois-je changer d'UID? Et comment pourrais-je faire ça?

Luke
la source

Réponses:

253

J'ai rencontré le même problème aujourd'hui.
J'ai modifié mon UID en ouvrant le fichier .vagrant/machines/default/virtualbox/creator_uidet en changeant le 501 en 0 .

Après avoir enregistré le fichier, la commande vagrant up a fonctionné comme un champion.

NB: le .vagrantdossier est dans le même répertoire que votre Vagrantfile, où vous avez exécutévagrant up

Fred
la source
64
Je me suis retrouvé dans la même situation, j'avais taré une archive tar à partir d'une machine ubuntu. Le simple fait de supprimer le rm -rf .vagrantrépertoire créé dans ubuntu a également résolu le problème.
Jeff Sheffield le
1
//, Wow, merci, @Fred! Stackoverflow nous sert au mieux avec ce type de solution précise et difficile à trouver de la part de quelqu'un qui a déjà eu à y faire face. Où trouverai-je habituellement le .vagrantdossier sur les machines Unix?
Nathan Basanese
1
Pas sûr, @Nathan. Pouvez-vous exécuter une commande de localisation pour le fichier creator_uid? Essayez "Locate creator_uid" sur la ligne de commande pour trouver le chemin du fichier à modifier.
Fred
4
Dans mon cas, le creator_uid contenait "90210", mais mon UID est 502. Plutôt que de changer l'UID dans le fichier à 0 comme cette solution le suggérait, je l'ai changé en 502. A bien fonctionné.
LS
5
Le .vagrantdossier @NathanBasanese est au même endroit que vous avez couruvagrant up
Harish Reddy
34

Ran dans ce problème dans une situation légèrement différente. Le problème était que ".vagrant" était archivé dans le dépôt git et que le committer fonctionnait sous un autre UID que moi.

Solution: ajoutez .vagrant à .gitignore.

Chris Cogdon
la source
15
C'était le problème auquel je faisais face; cependant, en ajoutant simplement .vagrantà .gitignorene pas résoudre le problème - YMMV, mais git rm -rf .vagrantdoit être exécuté aussi.
Marco Massenzio
@marco: Vous avez absolument raison. si ".vagrant" a été ajouté au dépôt, l'ajouter ensuite à .gitignore est trop tard :)
Chris Cogdon
8

J'ai rencontré le même problème, mais dans mon cas, c'était parce que j'étais tombé vagrant upen panne sudo, et quand j'y suis revenu plus tard, j'avais oublié.

Erreur idiote, mais je suis sûr que ce n'est pas la première fois que quelqu'un arrive :)

ConorLuddy
la source
1
Même problème ici, j'ai oublié de courir sous sudo. Mais le message d'erreur n'est malheureusement pas très révélateur de cela.
Zac Blazic
5

J'ai essayé de changer l'id dans .vagrant \ machines \ default \ virtualbox \ creator_uid et cela n'a pas fonctionné pour moi, mais en supprimant le fichier, creator_uid a fait l'affaire.

Canje027
la source
3

changez simplement l'ID utilisateur ici .vagrant / machines / default / virtualbox / creator_uid

Oleg Tokar
la source
1

Selon le manuel de l'utilisateur de VirtualBox :

Par mesure de sécurité, l'implémentation Linux de la mise en réseau interne permet uniquement aux machines virtuelles fonctionnant sous le même ID utilisateur d'établir un réseau interne.

En d'autres termes, vous devez passer à root ( UID 0) pour l'exécuter.

dmargol1
la source
10
Ne devrait pas fonctionner en tant que sudo, supprimez simplement votre répertoire .vagrant et exécutez-le en tant qu'utilisateur
Jeremy
1

Il est possible que vous ayez exécuté la commande: sudo vagrant up

Cela signifierait qu'en tant qu'utilisateur régulier, vous ne pouvez pas voir ni même supprimer le /.vagrantdossier et les fichiers.

Si tel est le cas, exécutez simplement: sudo vagrant destroy -f

Ensuite, vous devriez pouvoir exécuter (comme votre compte d'utilisateur normal): vagrant up

Brandon
la source
0

Exécutez les commandes suivantes:

bash
sudo vagrant up
vixadd
la source
0

J'ai eu le même problème après avoir obtenu un nouvel ordinateur. Au lieu de copier tous les fichiers de mon ancien ordinateur, j'ai dû vérifier à nouveau les projets vagrant à partir du référentiel git. Après cela, vagrant upa bien fonctionné.

Matschmann
la source
0

Juste pour ajouter à la réponse https://stackoverflow.com/a/32256848/2065804 de Fred .

Assurez-vous d'avoir changé la machine de la VM correcte. Par exemple, le nom de ma VM n'est PAS par défaut mais plutôt appelé homestead-7.

Donc, le chemin vers le bon est:

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

et pas:

.vagrant/machines/default/virtualbox/creator_uid

Cette erreur m'est arrivée lorsque j'ai remplacé mon Mac par un autre Mac.

Abdul Rahman A Samad
la source
0

Supprimez le contenu du répertoire caché .vagrant dans le répertoire de travail actuel et relancez la commande vagrant up. Erreur, en raison de la copie / sauvegarde de Vagranfile / s d'un système à un autre système. Mismath de l'identifiant de l'utilisateur au Vagrant pour faire apparaître l'environnement .. espérons que cela aide à applaudir .. !! :)) si vous ne souhaitez pas supprimer ce dossier, vous pouvez mettre à jour l'uid de l'utilisateur actuel dans le fichier dans le répertoire caché du répertoire de travail actuel, c'est-à-dire .vagrant / machines / jenkins / virtualbox $ vim creator_uid

siva krishna
la source
0

J'ai fait face à la même situation, mais j'ai un Vagrantfile multi-machine .

Pour remplacer l'ancien uid (1001) par le nouveau (1000), j'ai utilisé la commande suivante:

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

J'ai eu le même problème que j'avais oublié de placer sudoavant vagrant up, il vous suffit de l'exécuter sudo vagrant updans le dossier de votre fichier vagrant.

luis matos
la source
0

J'ai un fichier vagrant Multi-Machine. J'ai vérifié le creator_uidet il est 0mais toujours incapable de charger. J'ai donc supprimé le creator_uidfichier pour tous les Multi-Machine et cela a fonctionné. Le chemin doit être.vagrant\machines\<machine_name>\virtualbox

vkrams
la source