我正在尝试创建几个具有多个网络以及术语定义的主机。我不知道Ruby,也不知道这个语法有什么问题。
有人能给我们一些关于错误的建议吗?顺便提一下,在Ruby中是否有使用定义语法的最佳实践?
注意:下面的public_network是本地局域网(分配静态IP)。
Vagrant.configure("2") do |config|
# Ansible controller
config.vm.define "cent7ansiblecontroller" do |cent7ansiblecontroller|
cent7ansiblecontroller.vm.box = "geerlingguy/centos7"
# https://app.vagrantup.com/geerlingguy/boxes/centos7
cent7ansiblecontroller.vm.hostname = "cent7ansiblecontroller"
cent7ansiblecontroller.vm.network "hostonly", ip: "172.28.128.170"
cent7ansiblecontroller.vm.network "public_network", ip: "10.10.10.170"
end
end谢谢!
更新:从主机切换到private_network似乎是在Vagrant中进行验证,并允许机器出现。
不确定主机是否是一个有效的选项。
发现如下:https://www.vagrantup.com/docs/virtualbox/networking.html“默认情况下,专用网络是仅供主机使用的网络,.”和https://www.virtualbox.org/manual/ch06.html#network_内部
发布于 2019-09-05 20:37:22
hostonly不是有效的Vagrant。您只需要弄清楚您的连接应该达到多远,以及它与Vagrant(和VirtualBox)设置之间的关系。
public_network .vm.network "public_network", ip: ""如果你想让客人彼此交流,再加上主机,你就需要虚拟盒的“纯主机网络”,你可以从Vagrant的private_network .vm.network "private_network", ip: ""那里得到它。如果您希望客人之间仅进行通信,则需要VirtualBox的“内部网络”,这是通过Vagrant的带有virtualbox__intnet: true属性.vm.network "private_network", ip: "", virtualbox__intnet: true的D15指令得到的。这考虑到了你想要固定的IP。如果您使用DHCP左右,则会发生更改。请访问官方文件了解详细信息。
最佳实践
您的语法很好-- do..end就是这样工作的。这里只有一个样式问题:您有一个没有缩进的内部块。
Vagrant.configure("2") do |config| # Ansible controller config.vm.define # This should be indented
相反,请做:
Vagrant.configure("2") do |config| config.vm.define "" do || .vm.box ... ... end endhttps://serverfault.com/questions/982026
复制相似问题