- CentOS 7 虚拟机-10.0.2.100
- Windows Server 2012 R2 虚拟机 - 10.0.2.15
目标- 互相 ping;互相通信
问题- 无法互相 ping;无法互相通信
在 CentOS VM 上,我关闭了 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
答案1
我终于搞明白了。显然,你只需将 IP 地址设置为同一子网,然后添加并virtualbox__intnet: true
按照以下设置https://www.vagrantup.com/docs/virtualbox/networking.html
# Master
master.vm.network "private_network", ip: "192.168.50.100",
virtualbox__intnet: true
# Node
nodeone.vm.network "private_network", ip: "192.168.50.110",
virtualbox__intnet: true
答案2
正如@jeffrey-wen所说,解决方案是添加virtual_box__intnet: true
到 inventory 文件中。需要注意的是,这样做可能会导致您在 ping 或 ssh 到现在位于新本地网络上的 Vagrant 盒子时遇到问题(详情如下)在 Ansible 问题中)。
对我来说,解决方案是添加-c local
到我运行的任何命令中。-c
通知 Ansible 要使用的连接类型和默认值,smart
有时无法正常工作。
抱歉,将此作为答案发布 - 我的声誉还不足以将其作为评论发布 ¯\_(ツ)_/¯