2015-04-02 3 views
0

Я пытаюсь использовать бродягу для распределенного проекта в своей домашней сети. Это Vagrantfile, что я использую на каждом хосте (3 машины в общей сложности):Общественная сеть бродяг недоступна?

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

# Specify minimum Vagrant version and Vagrant API version 
Vagrant.require_version ">= 1.6.0" 
VAGRANTFILE_API_VERSION = "2" 

# Require YAML module 
require 'yaml' 

# Read YAML file with box details 
servers = YAML.load_file('RaftFS/servers.yaml') 

# Create boxes 
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
# Create servers 
    # Iterate through entries in YAML file 
    servers.each do |key,value| 
    #the line below will be different on each machine 
    if key == "hal9000" 
     config.vm.define key do |srv| 
      srv.vm.box = value['box'] 
       #srv.vm.network "private_network", ip: value['ip'] 
      srv.vm.network :public_network, ip:value['ip'] 
      srv.vm.hostname=key 
      srv.vm.synced_folder ".", "/vagrant" , disabled:true 
      srv.vm.synced_folder "ServersFS/"+key+"/", "/vagrant/ServersFS" , create: true 
      srv.vm.synced_folder "./RaftFS", "/vagrant/RaftFS" 
      srv.vm.provision :shell do |shell| 
       shell.path = "provision.sh" 
       shell.args = "'TRUE'" 
      end 
      srv.vm.provider :virtualbox do |vb| 
       vb.name = key 
       vb.memory = value['ram'] 
       end 
     end 
    end 
    end 
end 

И это servers.yaml:

jarvis: 
    box: hashicorp/precise32 
    ram: 512 
    ip: 192.168.1.200 
    ftpPort: 8080 
    diskSpace: 500 
skynet: 
    box: hashicorp/precise32 
    ram: 512 
    ip: 192.168.1.201 
    ftpPort: 8081 
    diskSpace: 500 
hal9000: 
    box: hashicorp/precise32 
    ram: 512 
    ip: 192.168.1.202 
    ftpPort: 8083 
    diskSpace: 500 

Теперь, если я ssh каждая машина и запустить ifconfig IP- установлен правильно. Проблема в том, что если я попытаюсь связаться с ней каким-либо образом, то semms будет недоступен даже с одной и той же главной машины! Другими словами, пытаясь получить IP-адрес от оболочки хост-машины, никакой ответ не поступает с гостевой машины.

+0

Хост обычно означает основной блок, на котором работает виртуальная машина. Поэтому, если у меня есть ноутбук Windows7 с 3 виртуальными машинами, работающими под управлением Ubuntu, то я бы сказал, что у меня есть один хост Windows7 с тремя виртуальными машинами/гостями, работающими на нем, поэтому я немного не уверен, что вы подразумеваете под последним предложением. – ydaetskcoR

ответ

0

Похоже, вы только устанавливаете виртуальную машину hal9000 для использования общественной (или мостовой) сети (или, фактически, для любой конфигурации), так что другие гости просто используют сеть только по умолчанию, которая должна означать, что они только имеют соединение с главной машиной, а не друг с другом.

Если вынуть: линия

if key == "hal9000" 

, то он должен настроить вещи должным образом.

Однако, если вы действительно не хотите, чтобы машины находились в Интернете с этими виртуальными машинами, все они должны быть в частной сети, которая должна работать, раскомментируя частную сетевую линию, которую вы уже имеете.

+0

Если я установил сеть как конфиденциальную, она не будет pingable (так что я выводить видимый) из остальной сети, только локальным хостом. Однако, глядя на бродячую секцию о частной и общественной сети, есть много путаницы, и я думаю, что ответ не уникален – justHelloWorld

Смежные вопросы