De onde vem o nome "padrão" ao iniciar uma caixa de vagabundos?
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
Existe uma maneira de definir isso?
configuration
vagrant
virtualbox
vagrantfile
Kyle Kelley
fonte
fonte
Respostas:
Achei as várias opções confusas, então decidi testar todas elas para ver exatamente o que elas fazem.
Estou usando o VirtualBox 4.2.16-r86992 e o Vagrant 1.3.3.
Eu criei um diretório chamado
nametest
e executeipara gerar um arquivo Vagrant padrão. Em seguida, abri a GUI do VirtualBox para poder ver quais nomes as caixas que eu criar apareceriam.
Arquivo Vagrant padrão
Nome da GUI do VirtualBox: "nametest_default_1386347922"
Comentários: o nome padrão é o formato DIRECTORY_default_TIMESTAMP.
Definir VM
Nome da GUI do VirtualBox: "nametest_foohost_1386347922"
Comentários: se você definir explicitamente uma VM, o nome usado substituirá o token 'padrão'. Esse é o nome de saídas vagantes no console. Simplificando com base na
zook
entrada de (comentarista)Definir nome do provedor
Nome da GUI do VirtualBox: "foohost"
Comentários: se você definir o
name
atributo em um bloco de configuração do provedor, esse nome se tornará o nome inteiro exibido na GUI do VirtualBox.Exemplo combinado: definir VM - e - definir nome do provedor
Nome da GUI do VirtualBox: "barhost"
Comentários: Se você usar os dois métodos ao mesmo tempo, o valor atribuído
name
no bloco de configuração do provedor vence. Simplificando com base nazook
entrada de (comentarista)Conjunto
hostname
(BÔNUS)Comentários: define o nome do host dentro da VM. Esta seria a saída do
hostname
comando na VM e também é isso que é visível no prompt comovagrant@<hostname>
, aqui vai parecervagrant@buzbar
Código final
Então aí está. Agora você conhece três opções diferentes que pode definir e os efeitos que elas têm. Eu acho que é uma questão de preferência neste momento? (Sou novo no Vagrant, por isso ainda não posso falar com as melhores práticas.)
fonte
VBoxManage list vms
na linha de comando.define VM
nome do método é usado no stdout e nos logs do Vagrant, enquanto oset provider name
nome é usado para gerenciar a caixa com o provedor. Então, ambos são relevantes.do... end
bloco se estiver vazio.config.vm.define "foohost"
funciona muito bem.Bringing machine 'default' up with 'virtualbox' provider...
em torno de quando você executavagrant up
Foi assim que designei nomes para VMs individuais. Mude
YOURNAMEHERE
para o nome desejado.Conteúdo do Vagrantfile:
Saída terminal:
fonte
config.vm.define :app_name
também funciona.config.vm.define YOURNAMEHERE do |t| end
Se você quiser alterar qualquer outra coisa em vez de 'padrão', adicione estas linhas adicionais ao seu arquivo Vagrant:
Altere o nome da caixa de base ao usar "status vagrant"
Onde "tendo" será o nome que aparecerá em vez do padrão
fonte
Eu especifico o nome definindo dentro do VagrantFile e também o nome do host, para que eu goste de ver o nome do meu projeto enquanto executo comandos do Linux independentemente do sistema operacional do meu dispositivo. ✌️
fonte
Sim, para o provedor Virtualbox, faça algo assim:
fonte
vagrant destroy
, trazendo-a de volta, ainda a chama de padrão.Você pode alterar o nome da máquina padrão vagrant alterando o valor de
config.vm.define
.Aqui está o arquivo Vagrant simples que usa getopts e permite alterar o nome dinamicamente:
Então, para usar um nome diferente, você pode executar, por exemplo:
Nota: O
--vm-name
parâmetro precisa ser especificado antes doup
comando.ou:
fonte
Caso haja muitas pessoas usando seu arquivo vagrant - convém definir o nome dinamicamente . Abaixo está o exemplo de como fazer isso usando o nome de usuário da sua máquina HOST como o nome da caixa e o nome do host:
fonte