network - vagrant server
¿Cómo puede Vagrant reenviar múltiples puertos en la misma máquina? (3)
Me pregunto cómo configurar un archivo Vagrant que pondrá una máquina con dos puertos reenviados. Este es mi actual Vagrantfile, que reenvía la página 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
¡Gracias!
Puede reenviar tantos puertos como desee (si la máquina host no utiliza esos puertos) de la siguiente manera:
# 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 desea reenviar un rango de puertos, for loop
también se puede usar así:
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
Si desea reenviar dos puertos, simplemente puede agregar otra línea como esta:
config.vm.network :forwarded_port, guest: 8080, host: 8080
config.vm.network :forwarded_port, guest: 5432, host: 5432
En mi opinión, una forma mejor es configurar una red privada (o red solo de host) para que no tenga que reenviar todos los puertos manualmente.
Ver mi post aquí: Vagrant forward port forwarding?
Consejos adicionales
Si utiliza la función :id
al definir :forward_port
entradas :forward_port
, debe asegurarse de que cada una sea única. De lo contrario, se pegarán el uno al otro, y el último definido normalmente ganará.
Por ejemplo:
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''
Si está utilizando Chef Kitchen, los puertos se configuran en el archivo .kitchen.yml de la siguiente manera:
---
driver:
name: vagrant
network:
- ["forwarded_port", {guest: 80, host: 40080}]
- ["forwarded_port", {guest: 443, host: 40443}]
provisioner:
...
Esto pondrá las siguientes líneas en el archivo .kitchen / kitchen-vagrant / Vagrantfile:
c.vm.network(:forwarded_port, {:guest=>80, :host=>40080})
c.vm.network(:forwarded_port, {:guest=>443, :host=>40443})
No te olvides de hacer destruir una cocina y crear una cocina.
ver:
http://www.jeeatwork.com/?p=76