- CentOS 7 虚拟机 - 10.0.2.100
- Windows Server 2012 R2 虚拟机 - 10.0.2.15
目标- Ping 对方;互相交流
问题- 无法相互 ping 通;互相交流
在 CentOS 虚拟机上,我关闭了 auto_config,因为 Vagrant 无法为我自动更改 IP。所以我让 Vagrant 将其识别为 10.0.2.100,然后在 VM 上手动更改网络。
在 Windows VM 上,Vagrant 默认 IP 地址为 10.0.2.15。
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.define "master" do |master|
master.vm.box = "centos/7"
master.vm.network "private_network", ip: "10.0.2.100", auto_config: false
master.vm.box = "centos_7_v2"
master.vm.hostname = "master.local.com"
master.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
end
config.vm.define "nodeone" do |nodeone|
nodeone.vm.box = "windows_2012_r2_standard"
nodeone.vm.hostname = "nodeone.local.com"
nodeone.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
end
end
我将配置 --natdnshostresolver1 添加到两个虚拟机中,然后将以下内容添加到我自己的主机文件中(在我的 Mac 上)。
10.0.2.15 nodeone.local.com
10.0.2.100 master.local.com
我终于弄明白了。显然,您只需将 IP 地址设置在同一子网中,然后按照https://www.vagrantup.com/docs/virtualbox/networking.html
virtualbox__intnet: true
的设置进行添加正如@jeffrey-wen 所说,解决方案是添加
virtual_box__intnet: true
到库存文件中。应该注意的是,这样做时,您可能无法 ping 或 ssh 到您现在位于新本地网络上的 Vagrant 盒子(如本 Ansible 问题中所述)。我的解决方案是添加
-c local
到我运行的任何命令中。-c
通知 Ansible 要使用的连接类型和默认值smart
,有时无法正常工作。很抱歉将其发布为答案-我还没有足够的声誉将其发布为评论¯\_(ツ)_/¯