来宾机器之间的 Vagrant 通信 [英] Vagrant communication between guest machines

查看:27
本文介绍了来宾机器之间的 Vagrant 通信的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有多个 Vagrant 机器,如下所示:

I have multiple Vagrant machines like so:

config.vm.define 'vagrant1' do |vagrant1|
    config.vm.provider :virtualbox do |vb|
        vb.customize ['modifyvm', :id, '--natdnshostresolver1', 'on']
    end
    vagrant1.vm.box = 'ubuntu/trusty64'
    vagrant1.vm.network 'forwarded_port', guest: 80, host: 8080 
    vagrant1.vm.network 'forwarded_port', guest: 443, host: 8443
    vagrant1.vm.network 'forwarded_port', guest: 27017, host: 27017
    # Create a private network, which allows host-only access to the machine
    # using a specific IP.
    config.vm.network 'private_network', ip: '192.168.56.11'

    ENV['LC_ALL']='en_US.UTF-8'

end

config.vm.define 'vagrant2' do |vagrant2|
    config.vm.provider :virtualbox do |vb|
        vb.customize ['modifyvm', :id, '--natdnshostresolver1', 'on']
    end
    vagrant2.vm.box = 'ubuntu/trusty64'
    vagrant2.vm.network 'forwarded_port', guest: 80, host: 8081
    vagrant2.vm.network 'forwarded_port', guest: 443, host: 8444
    vagrant2.vm.network 'forwarded_port', guest: 27017, host: 27018
    # Create a private network, which allows host-only access to the machine
    # using a specific IP.
    config.vm.network 'private_network', ip: '192.168.56.12'

    ENV['LC_ALL']='en_US.UTF-8'
end 

我想要的是 vagrant1 机器能够与 vagrant2 机器通信.到目前为止,我可以从我的主机连接,但来宾机器彼此无法访问.

What I would like is for vagrant1 machine to be able to communicate with vagrant2 machine. So far, I can connect from my host machines but the guest machines are unreachable to each other.

如何启用来宾计算机之间的通信?

How do I enable communication between guest machines?

推荐答案

好的,我发现了错误 - 您对 config 变量的使用有误,您编写为 config.vm. 的所有内容均适用于所有虚拟机,即使它在一个块内,因此在您的情况下,它正在创建多个网络接口.

ok I spotted the error - you have wrong use of the config variable, everything you write as config.vm. is valid for all VMs even when its within a block so in your case it was creating multiple network interfaces.

所以你的 Vagrantfile 的简化版本可以写成

So a simplified version of your Vagrantfile could be written as

# -*- mode: ruby -*-
# vi: set ft=ruby :

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

    config.vm.box = 'ubuntu/trusty64'
    config.vm.provider :virtualbox do |vb|
        vb.customize ['modifyvm', :id, '--natdnshostresolver1', 'on']
    end

    config.vm.define 'vagrant1' do |vagrant1|
        vagrant1.vm.network 'private_network', ip: '192.168.56.11'
        ENV['LC_ALL']='en_US.UTF-8'
    end

    config.vm.define 'vagrant2' do |vagrant2|
        vagrant2.vm.network 'private_network', ip: '192.168.56.12'
        ENV['LC_ALL']='en_US.UTF-8'
    end 

end

注意:当您使用静态 IP 时,您不需要转发端口,因为您可以直接从 IP 访问

Note: you dont need to forward port when you're using a static IP as you can access directly from the IP

这篇关于来宾机器之间的 Vagrant 通信的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆