O Vagrant não inicia. O usuário que criou a VM não corresponde ao usuário atual

123

Eu estava tentando iniciar a minha máquina vagrant, então naveguei para a pasta onde está o meu arquivo vagrant e usei:

vagrant up && vagrant ssh

mas recebi a seguinte mensagem de erro:

A VM do VirtualBox foi criada com um usuário que não corresponde ao usuário atual que está executando o Vagrant. O VirtualBox requer que o mesmo usuário seja usado para gerenciar a VM que foi criada. Por favor, execute novamente o Vagrant com esse usuário. Este não é um problema do Vagrant.

O UID usado para criar a VM foi: 0 Seu UID é: 501

Eu também tentei com o sudo, mas isso também não funcionou.

Preciso mudar de UID? E como eu faria isso?

Lucas
fonte

Respostas:

252

Encontrei o mesmo problema hoje.
Editei meu UID abrindo o arquivo .vagrant/machines/default/virtualbox/creator_uide alterando o 501 para 0 .

Depois que eu salvei o arquivo, o comando vagrant up funcionou como um campeão.

Nota: a .vagrantpasta está no mesmo diretório do seu Vagrantfile, onde você executouvagrant up

Fred
fonte
64
Eu me encontrei na mesma situação, tinha tar um tarball de uma máquina ubuntu. Então, simplesmente remover o rm -rf .vagrantdiretório criado no ubuntu também resolveu o problema.
Jeff Sheffield
1
// Uau, obrigado, @Fred! O Stackoverflow nos serve da melhor maneira possível com esse tipo de solução precisa e difícil de encontrar de alguém que já teve que lidar com isso antes. Onde geralmente vou encontrar a .vagrantpasta em máquinas baseadas em Unix?
21715 Nathan Basanese
1
Não tenho certeza, @ Nathan. Você pode executar um comando de localização para o arquivo creator_uid? Tente "localizar creator_uid" na linha de comando para encontrar o caminho para o arquivo a ser editado.
Fred
4
No meu caso, o creator_uid continha "90210", mas meu UID é 502. Em vez de alterar o UID no arquivo para 0, como sugeriu esta solução, mudei para 502. Funcionou bem.
LS
5
@NathanBasanese .vagrantpasta está no mesmo local que você correuvagrant up
Harish Reddy
33

Encontrei esse problema em uma situação um pouco diferente. O problema era que ".vagrant" foi verificado no repositório git e o committer estava executando sob um UID diferente do que eu.

Solução: adicione .vagrant ao .gitignore.

Chris Cogdon
fonte
15
Esse foi o problema que enfrentei; no entanto, simplesmente adicionando .vagranta .gitignoreirá não resolver o problema - YMMV, mas git rm -rf .vagrantdeve ser executado também.
Marco Massenzio
@marco: Você está absolutamente certo. se ".vagrant" foi adicionado ao repositório, adicionando-o .gitignore depois é tarde demais :)
Chris Cogdon
8

Corri para o mesmo problema, mas no meu caso, era porque havia corrido vagrant upabaixo sudoe, quando voltei mais tarde, havia esquecido.

Erro bobo, mas tenho certeza que não é a primeira vez que acontece alguém :)

ConorLuddy
fonte
1
Mesmo problema aqui, esqueci de correr sudo. Mas a mensagem de erro não é muito indicativa disso, infelizmente.
Zac Blazic
5

Tentei alterar o ID em .vagrant \ machines \ default \ virtualbox \ creator_uid e isso não funcionou para mim, mas a exclusão do arquivo foi criada por creator_uid.

Canje027
fonte
3

basta alterar a ID do usuário aqui .vagrant / machines / default / virtualbox / creator_uid

Oleg Tokar
fonte
1

De acordo com o manual do usuário do VirtualBox :

Como medida de segurança, a implementação Linux da rede interna permite apenas que as VMs executadas com o mesmo ID de usuário estabeleçam uma rede interna.

Em outras palavras, você precisa mudar para root ( UID 0) para executá-lo.

dmargol1
fonte
10
Não deve ser executado como sudo, apenas exclua seu diretório .vagrant e execute como seu usuário
Jeremy
1

É possível que você tenha executado o comando: sudo vagrant up

Isso significa que, como usuário comum, você não consegue ver nem excluir a /.vagrantpasta e os arquivos.

Nesse caso, basta executar: sudo vagrant destroy -f

Então você poderá executar (como sua conta de usuário normal): vagrant up

brandon
fonte
0

Execute os seguintes comandos:

bash
sudo vagrant up
vixadd
fonte
0

Eu tive o mesmo problema depois que recebi um novo computador. Em vez de copiar todos os arquivos do meu computador antigo, tive que verificar os projetos vagrantes novamente no repositório git. Depois disso, vagrant upfuncionou bem.

Matschmann
fonte
0

Apenas para adicionar à resposta https://stackoverflow.com/a/32256848/2065804 de Fred .

Verifique se você alterou a máquina da VM correta. Por exemplo, meu nome de VM NÃO é o padrão, mas é chamado de homestead-7.

Portanto, o caminho para o caminho correto é:

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

e não:

.vagrant/machines/default/virtualbox/creator_uid

Este erro aconteceu comigo quando mudei meu Mac para outro Mac.

Abdul Rahman A Samad
fonte
0

Remova o conteúdo do diretório oculto .vagrant no diretório atual de trabalho e execute novamente o comando vagrant up. Erro, devido à cópia / backup do Vagranfile / s de um sistema para outro. a identificação do usuário com o Vagrant para trazer o ambiente à tona. :)) se você não deseja excluir essa pasta, você pode atualizar o uid do usuário atual em um arquivo no diretório oculto do diretório atual, ou seja, .vagrant / machines / jenkins / virtualbox $ vim creator_uid

siva krishna
fonte
0

Já enfrentei a mesma situação, mas tenho um arquivo Vagrant de várias máquinas .

Para substituir o uid antigo (1001) pelo novo (1000), usei o seguinte comando:

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

Eu tive o mesmo problema que esqueci de colocar sudoantes vagrant up, basta executar sudo vagrant upna pasta do seu arquivo vagrant.

luis matos
fonte
0

Tenho arquivo vagrant Multi-Machine. Eu verifiquei o creator_uide ele 0ainda não pode carregar. Então, eu apaguei o creator_uidarquivo para toda a máquina múltipla e funcionou. Caminho deve ser.vagrant\machines\<machine_name>\virtualbox

vkrams
fonte