J'ai un serveur (Debian Squeeze) avec 1 carte Ethernet et 2 adresses IP statiques publiques (188.120.245.4 et 188.120.244.5).
Ce que je veux: configurer une boîte virtuelle (Ubuntu) avec un accès via une adresse IP statique (188.120.244.5).
Ce que j'essayais:
- config.vm.forward_port - bonne idée: configurer l'interface "eth1: 1" avec 188.120.244.5 sur la machine hôte et l'ajouter au fichier Vagrant "config.vm.forward_port = hmm ..?"
- config.vm.network: hostonly, "188.120.244.5" - ne fonctionne pas. A été créé une nouvelle interface sur la machine hôte avec l'IP "188.120.244.1". Bien sûr, l'IP 188.120.244.1 n'est pas la mienne et je ne peux pas accéder à mon serveur via cette IP.
- config.vm.network: bridged - je ne sais pas comment cela fonctionne :)
Ce que j'ai maintenant: la configuration ne fonctionne pas.
Debian-host-machine# cat Vagrantfile
Vagrant::Config.run do |config|
config.vm.define :gitlab do |box_config|
box_config.vm.box = "ubuntu"
box_config.vm.host_name = "ubuntu"
box_config.vm.network :bridged
box_config.vm.network :hostonly, "188.120.244.5", :auto_config => false
end
end
Debian-host-machine# ifconfig
eth1 Link encap:Ethernet HWaddr 00:15:17:69:71:bb
inet addr:188.120.245.4 Bcast:188.120.247.255 Mask:255.255.248.0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
vboxnet0 Link encap:Ethernet HWaddr 0a:00:27:00:00:00
inet addr:188.120.244.1 Bcast:188.120.246.255 Mask:255.255.255.0
Ubuntu-virtual-machine# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:ee:8d:0c
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
eth1 Link encap:Ethernet HWaddr 08:00:27:45:71:87
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
Comment puis-je accéder à la boîte virtuelle via une IP statique publique à partir du réseau?
J'utilise Oracle VM VirtualBox Manager 4.1.18 et Vagrant version 1.0.3.
Merci d'avance pour vos commentaires.
networking
routing
nat
vagrant
Numbata
la source
la source
Réponses:
Depuis la version 1.3.0:
il vous suffit de mettre cette configuration dans votre Vagrantfile (documentation) :
Ce truc Vagrant est vraiment génial :-)
la source
Après deux semaines, j'ai résolu ma question de cette façon:
Cookbook génère Vagrantfile à partir du modèle:
rebuild-iptables doit générer et appliquer des règles iptables:
Et:
Maintenant, je peux installer des applications dans la boîte et me connecter à elles via une IP publique statique sans configuration "port_forwarding" (comme sur VPS).
la source
Ce dont vous avez vraiment besoin, c'est d'une interface pontée avec une adresse IP statique. Malheureusement, vagabond ne supporte pas encore cela (voir la discussion ici ).
Tout d'abord, définissez box_config.vm.network: bridged car vous avez besoin de virtualbox pour créer une interface pontée, et vous pouvez supprimer box_config.vm.network: hostonly.
Vous pouvez utiliser le provisionnement du shell pour reconfigurer le réseau avec votre IP, mais vous ne pouvez pas modifier le fichier / etc / network / interfaces ou la machine virtuelle ne pourra pas revenir si vous faites un arrêt vagabond (faire vagrant up va essayer et reconfigurer les interfaces réseau, et il meurt si vous avez modifié ce fichier).
Ainsi, l'alternative consiste à créer un script dans /etc/network/if-up.d/ qui redéfinit l'IP de l'interface. Pas idéal, mais je n'ai pas encore trouvé de meilleure solution!
Voir les sections pertinentes de la configuration ci-dessous. Sur le script bash, vous devez définir l'IP / le masque de réseau, la passerelle et le DNS (et le numéro d'interface, si le vôtre est différent, il doit être eth1 si vous venez de définir un pont dans Vagrantfile).
Donc, la première fois que vous vous trompez et qu'il crée la machine virtuelle, il crée un script /etc/network/if-up.d/custom-network-config qui définit la configuration IP, le routage et redémarre apache (vous devrez modifiez-le si vous utilisez d'autres services qui dépendent de la configuration réseau), et cela définit le DNS.
Ensuite, si vous recommencez à vagabonder alors que la machine virtuelle existe déjà (par exemple, après avoir fait un arrêt vagabond), il ne fait que redémarrer les interfaces réseau pour que le script soit exécuté et que l'interface soit configurée (pour une raison quelconque, j'ai trouvé que le script n'a pas été lancé) désactivé lorsque la machine virtuelle a été allumée et que les interfaces sont apparues initialement - je ne sais pas pourquoi).
Vagrantfile
vagrant-setup.sh
la source