web-dev-qa-db-fra.com

Comment Vagrant peut-il transmettre plusieurs ports sur la même machine?

Je me demande comment configurer un fichier Vagrant qui mettra en place une machine avec deux ports transmis. Voici mon Vagrantfile actuel, qui transmet la page 8080:

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

  config.vm.box = "precise32"
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"
  config.vm.provider "virtualbox"

  config.vm.network :forwarded_port, guest: 8080, Host: 8080
  config.vm.provision :Shell, :path => "start.sh", :args => "'/vagrant'"

  config.vm.network :public_network
end

Merci!

55
fegemo

Si vous souhaitez transférer deux ports, vous pouvez simplement ajouter une autre ligne comme celle-ci:

config.vm.network :forwarded_port, guest: 8080, Host: 8080
config.vm.network :forwarded_port, guest: 5432, Host: 5432

Une meilleure façon, à mon avis, est de configurer un réseau privé (ou réseau uniquement hôte), de sorte que vous n'ayez pas à transférer tous les ports manuellement.

Voir mon article ici: redirection de port inverse Vagrant?

Conseils supplémentaires

Si vous utilisez le :id fonctionnalité lors de la définition de :forward_port entrées dont vous avez besoin pour vous assurer que chacune est unique. Sinon, ils s'encombreront et le dernier défini l'emportera généralement.

Par exemple:

config.vm.network "forwarded_port", guest: 8080, Host: 8080, id: 'was_appserver_http'
config.vm.network "forwarded_port", guest: 9043, Host: 9043, id: 'ibm_console_http'
config.vm.network "forwarded_port", guest: 9060, Host: 9060, id: 'ibm_console_https'
88
Mingyu

Vous pouvez transférer autant de ports que vous le souhaitez (si ces ports sont non utilisés par la machine hôte), comme suit:

# for Redis
config.vm.network "forwarded_port", guest: 6379, Host: 6379
# for HTTP
config.vm.network "forwarded_port", guest: 80, Host: 80
# for MySQL
config.vm.network "forwarded_port", guest: 3306, Host: 3306

Si vous souhaitez transférer un plage de ports, for loop peut également être utilisé comme ceci:

for i in 81..89
          config.vm.network :forwarded_port, guest: i, Host: i
end
for i in 8080..8089
          config.vm.network :forwarded_port, guest: i, Host: i
end
10
thucnguyen

Si vous utilisez chef kitchen, les ports sont définis dans le fichier .kitchen.yml comme suit:

---
driver:
  name: vagrant
  network:
    - ["forwarded_port", {guest: 80, Host: 40080}]
    - ["forwarded_port", {guest: 443, Host: 40443}]
provisioner:
...

cela mettra les lignes suivantes dans le fichier .kitchen/kitchen-vagrant/Vagrantfile:

c.vm.network(:forwarded_port, {:guest=>80, :Host=>40080})
c.vm.network(:forwarded_port, {:guest=>443, :Host=>40443})

n'oubliez pas de détruire une cuisine et de créer une cuisine.

voir:

http://www.jeeatwork.com/?p=76

https://github.com/test-kitchen/kitchen-vagrant#-network

https://docs.chef.io/config_yml_kitchen.html

1

Je n'ai pas pu accéder à mon application sans l'argument Host:

ng serve --Host 0.0.0.0
0
Anerty