首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎样才能更清楚地知道Vagrant机器的名字?

我怎样才能更清楚地知道Vagrant机器的名字?
EN

Stack Overflow用户
提问于 2014-01-28 15:40:55
回答 2查看 2.3K关注 0票数 4

我正在使用Vagrant,它是一个用于虚拟化环境的非常好的工具。但我对VirtualBox如何更改创建的VM的名称有疑问。

我有这个Vagrantfile文件配置

代码语言:javascript
复制
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  config.vm.hostname = "ubuntu"

  config.vm.box = "ubuntu-12.04"

  config.vm.network :private_network, ip: "33.33.33.13"

  config.berkshelf.enabled = true

end 

当我运行流浪者时,virtualbox工具会用不同的名称创建我的机器。

代码语言:javascript
复制
roberto@rcisla-pc:~/myface$ VBoxManage list vms
"myface_default_1390750040" {eed39077-32da-44e5-961f-2bb772a2bf31}

为什么当我在Vagrantfile中配置了一个不同的名称时,virtualbox创建了名为myface_default_1390750040的机器,在本例中是ubuntu-12.04。

这是我的烹饪书结构

代码语言:javascript
复制
 .
    ├── attributes
    │   └── default.rb
    ├── Berksfile
    ├── Berksfile.lock
    ├── chefignore
    ├── definitions
    ├── files
    │   └── default
    ├── Gemfile
    ├── libraries
    ├── LICENSE
    ├── metadata.rb
    ├── providers
    ├── README.md
    ├── recipes
    │   └── default.rb
    ├── resources
    ├── templates
    │   └── default    │       
    ├── test
    │   └── integration
    │       └── default
    │           └── serverspec
    │               ├── default
    │               │   ├── test_spec.rb
    │               │   └── demo_spec.rb
    │               └── spec_helper.rb
    ├── Thorfile
    └── Vagrantfile

我不明白为什么VirtualBox相对于食谱取名字而不取ubuntu-12.04

我在用

  • 流浪者1.3.5
  • VirtualBox 4.3.5 r91406
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-28 17:30:48

您可以在流浪文件中添加一个config.vm.define块。

例如:

代码语言:javascript
复制
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.synced_folder ".", "/vagrant", type: "nfs"

  config.vm.define "{YOUR NICE NAME HERE}" do |web|

    web.vm.box       = "CentOs"
    web.vm.box_url   = "http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box"
    web.vm.hostname  = 'dev.local'

    web.vm.network :forwarded_port, guest: 90, host: 9090
    web.vm.network :private_network, ip: "22.22.22.11"

    web.vm.provision :puppet do |puppet|
      puppet.manifests_path = "puppet/manifests"
      puppet.manifest_file  = "web.pp"
      puppet.module_path    = "puppet/modules"
      puppet.options        = ["--verbose", "--hiera_config /vagrant/hiera.yaml", "--parser future"]
    end

  end

end

这样,当您在虚拟框中检查列表时,您将看到您定义的名称。但是请记住,Vagrant总是会在vm的名称后面追加一个随机字符串,因为它需要在运行同一个流浪者文件的多个vm时识别正确的机器。

票数 4
EN

Stack Overflow用户

发布于 2017-03-22 03:11:09

vagrant生成的默认VM机器名使用您的folder_name和时间戳FOLDER_default_TIMESTAMP。要在virtualbox上命名vm机器,请将以下代码添加到vagrantfile中:

代码语言:javascript
复制
config.vm.provider :virtualbox do |vb|
   vb.name = 'myhost'
end

hostname设置控制如何显示ssh提示符:

代码语言:javascript
复制
config.vm.hostname = 'myhost'

若要在virtualboxssh提示符上使用相同的名称,请添加以下代码:

代码语言:javascript
复制
config.vm.hostname = 'myhost'

config.vm.provider :virtualbox do |vb|
   vb.name = config.vm.hostname
end

我正在使用virtualbox 5.1.18vagrant 1.9.2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21410099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档