Ustawiłem maszynę Vagrant (1.2.2) z VistualBox na : private_network i uruchomiłem na tym serwerze Sinatrę. Jednak nie jestem w stanie połączyć się z tą instancją Sinatry. Jednak maszyna wirtualna działa i odpowiada na pingi.Vagrant odmawia połączenia w trybie private_network
Oto moja Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "precise64"
config.vm.network :private_network, ip: "192.168.33.10"
end
Więc zacznę Vagrant VM i ssh do niego
prodserv$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- /vagrant
prodserv$ vagrant ssh
Welcome to Ubuntu 12.04.2 LTS (GNU/Linux 3.2.0-23-generic x86_64)
* Documentation: https://help.ubuntu.com/
Welcome to your Vagrant-built virtual machine.
Last login: Thu May 23 14:01:05 2013 from 10.0.2.2
Więc nawet tu wszystko jest cacy. ping do VM będzie działać dobrze (Sprawdziłem też, że jest to naprawdę ip VMS. Więc pingowanie bez włóczęgę aż doprowadzi do utraty pakietów)
prodserv$ ping 192.168.33.10
PING 192.168.33.10 (192.168.33.10): 56 data bytes
64 bytes from 192.168.33.10: icmp_seq=0 ttl=64 time=0.543 ms
64 bytes from 192.168.33.10: icmp_seq=1 ttl=64 time=0.328 ms
świetnie! Teraz uruchomić serwer na VM
[email protected]:~$ sudo ruby /vagrant/server.rb
== Sinatra/1.4.2 has taken the stage on 4567 for development with backup from Thin
>> Thin web server (v1.5.1 codename Straight Razor)
>> Maximum connections set to 1024
>> Listening on localhost:4567, CTRL+C to stop
jest to odpowiednie server.rb
require 'rubygems'
require 'sinatra'
get '/' do
puts "WOW!"
'Hello, world!'
end
jeśli I teraz zwijać z gość VM do Sinatry wszystko działa w porządku, a " Witaj świecie!" będzie zwrócony.
[email protected]:~$ curl 'http://localhost:4567'
Hello, [email protected]:~$
#and the Sintra/Ruby process gets me this
WOW!
127.0.0.1 - - [23/May/2013 16:06:36] "GET/HTTP/1.1" 200 13 0.0026
Jednak gdy próbuję do zwinięcie z maszyny gospodarza połączenie zostanie odrzucone.
prodserv$ curl -v 'http://192.168.33.10:4567'
* About to connect() to 192.168.33.10 port 4567 (#0)
* Trying 192.168.33.10...
* Connection refused
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host
Więc co słychać?
masz rację, nie jest to pytanie programistyczne. – robkuz
Musisz włączyć przekazywanie portów dla 4567 w pliku Vagrantfile. Domyślnie jedynym portem, który przejmuje VMS do działającego vm, jest 22 dla ssh. –