J'ai configuré ma machine virtuelle Vagrant (1.2.2) exécutant VistualBox en :private_network et j'ai démarré un serveur Sinatra dessus. Cependant, je ne parviens pas à me connecter à cette instance Sinatra. Cependant, la machine virtuelle fonctionne et répond aux pings.
Voici mon Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "precise64"
config.vm.network :private_network, ip: "192.168.33.10"
Donc je démarre la machine virtuelle Vagrant et j'y accède en SSH
prodserv$ vagrant up
En train de démarrer la machine 'default' avec le provider 'virtualbox'...
[default] Définition du nom de la VM...
[default] Nettoyage des ports en cours...
[default] Création des métadonnées des dossiers partagés...
[default] Nettoyage des interfaces réseau précédemment configurées...
[default] Configuration des interfaces réseau en fonction de la configuration...
[default] Redirection des ports...
[default] -- 22 => 2222 (adapter 1)
[default] Démarrage de la machine virtuelle...
[default] Attente du démarrage de la machine virtuelle. Cela peut prendre quelques minutes.
[default] La machine virtuelle est démarrée et prête à être utilisée!
[default] Configuration et activation des interfaces réseau...
[default] Montage des dossiers partagés...
[default] -- /vagrant
prodserv$ vagrant ssh
Bienvenue sur Ubuntu 12.04.2 LTS (GNU/Linux 3.2.0-23-generic x86_64)
* Documentation: https://help.ubuntu.com/
Bienvenue sur votre machine virtuelle construite avec Vagrant.
Dernière connexion : jeu. 23 mai 14:01:05 2013 depuis 10.0.2.2
Jusqu'ici tout va bien. Un ping vers la machine virtuelle fonctionnera bien (j'ai également vérifié qu'il s'agit vraiment de l'adresse IP de la machine virtuelle. Donc le ping sans vagrant up entraînera une perte de paquets)
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
Génial! Maintenant je démarre le serveur sur la machine virtuelle
vagrant@precise64:~$ sudo ruby /vagrant/server.rb
== Sinatra/1.4.2 prend la scène sur 4567 pour le développement avec le support de Thin
>> Serveur web Thin (v1.5.1 surnom Rasoir droit)
>> Connexions maximales définies à 1024
>> En cours d'écoute sur localhost:4567, CTRL+C pour arrêter
voici le server.rb correspondant
require 'rubygems'
require 'sinatra'
get '/' do
puts "WOW!"
'Bonjour, monde!'
si j'utilise curl maintenant depuis la machine virtuelle vers Sinatra, tout fonctionne correctement et "Bonjour, monde!" sera renvoyé.
vagrant@precise64:~$ curl 'http://localhost:4567'
Bonjour, monde!
et le processus Sintra/Ruby me donne ceci WOW! 127.0.0.1 - - [23/May/2013 16:06:36] "GET / HTTP/1.1" 200 13 0.0026
Cependant, si j'essaie d'utiliser curl depuis la machine hôte, la connexion est refusée.
prodserv$ curl -v 'http://192.168.33.10:4567'
* Connexion à 192.168.33.10 port 4567 (#0)
* Essai de 192.168.33.10...
* Connexion refusée
* impossible de se connecter à l'hôte
* Fermeture de la connexion #0
curl: (7) impossible de se connecter à l'hôte
Alors que se passe-t-il?