Ubuntu 流浪汉术语
TL;博士有人能帮我理解文件中定义的这些“名称”之间的区别吗Ubuntu 流浪汉术语,ubuntu,vagrant,virtualbox,vagrantfile,Ubuntu,Vagrant,Virtualbox,Vagrantfile,TL;博士有人能帮我理解文件中定义的这些“名称”之间的区别吗 config.vm.define“worker” box.vm.box=“ots-box” box.vm.host\u name=“worker” vb.name=“barhost” 在尝试更改我拥有的vagrant实例的主机名时,我迷失在Vagrantfile语法中。现在我已经成功地更改了主机名,但是其他一些东西(网络)不起作用。我怀疑我已经改变了一些东西,导致vagrant以一种特殊的方式来配置box,这导致了这个问题 Vagr
config.vm.define“worker”
box.vm.box=“ots-box”
box.vm.host\u name=“worker”
vb.name=“barhost”
在尝试更改我拥有的vagrant实例的主机名时,我迷失在Vagrantfile语法中。现在我已经成功地更改了主机名,但是其他一些东西(网络)不起作用。我怀疑我已经改变了一些东西,导致vagrant以一种特殊的方式来配置box,这导致了这个问题
Vagrant.configure("2") do |config|
config.vm.define "worker".to_sym do |box|
box.vm.box = "ots-box"
box.vm.box_url = "http://testing.xxx.com.s3.amazonaws.com/ots-fe.box"
box.vm.host_name = "worker"
end
我想这是无关紧要的,但我正试图用Oracle VirtualBox和vagrant版本1.7.4在Mac El capitan上创建一个ubuntu框
说: config.vm.box-配置机器将面对的框。此处的值应为已安装盒子的名称或HashiCorp Atlas中盒子的简写名称 介绍另一个术语vb.name:
Vagrant.configure('2') do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vm.define "foohost" do |foohost|
end
config.vm.provider :virtualbox do |vb|
vb.name = "barhost"
end
end
我将试着逐点回答: 首先使用以下语法
Vagrant.configure("2") do |config|
config.vm.define "worker".to_sym do |box|
box.vm.box = "ots-box"
box.vm.box_url = "http://testing.xxx.com.s3.amazonaws.com/ots-fe.box"
box.vm.host_name = "worker"
end
主要用于运行多个VM()的情况,因此需要为VM定义一个名称,在您的情况下,worker
,因此在下一个块中,将为worker
VM设置所有参数,并且为了使ruby语法满足需要,您需要定义一个变量名(box
)
因此,如果您的Vagrant文件中只有一个VM,则不需要此语法,只需
Vagrant.configure("2") do |config|
config.vm.box = "ots-box"
config.vm.box_url = "http://testing.xxx.com.s3.amazonaws.com/ots-fe.box"
config.vm.hostname = "worker"
end
其次,config/box.vm.box
指向一个虚拟机,这是一个非常重要的Vagrant概念,因为您要旋转的每个虚拟机都必须根据现有的框创建。你们可以从网上下载这个盒子(流浪者地图册),或者自己制作这个盒子。您可以通过运行vagrant box list
查看机器上安装的可用框。如果vagrant文件中设置的框在available框中不可用,vagrant将尝试下载(因此,如果您指向类似于ubuntu/trusty64
,即使您没有安装它,vagrant也会从中下载,假设您的提供商可以使用它)
第三,config/box.vm.hostname
将是您感兴趣的变量(而不是hostname vs host_name)
config.vm.hostname—计算机应具有的主机名。默认为
无如果为nil,Vagrant将不会管理主机名。如果设置为字符串,
主机名将在启动时设置
因此,如果在Vagrant文件中设置此变量并启动机器,ubuntu中的hostname
变量将解析为相同的值。例如,从以下文件
Vagrant.configure(2) do |config|
...
config.vm.box = "ubuntu/trusty64"
config.vm.hostname = "ubuntu"
...
从虚拟机,我得到
fhenri@machine:~/project/examples/vagrant/ubuntu$ vagrant ssh
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-29-virtual x86_64)
* Documentation: https://help.ubuntu.com/
Last login: Tue Jan 5 10:21:54 2016 from 172.16.42.1
vagrant@ubuntu:~$ hostname
ubuntu
最后,名称主题,
config/box.vm.name
将用于提供程序(在您的例子中是VirtualBox)提供的vm的名称,下面对其进行了很好的解释感谢您的精彩写作!最后一个(vb.name
)只是提供者GUI的名称,对吗?在我的例子中,名称显示在Oracle VirtualBox GUI中。是的,您可以设置名称,使其看起来有意义