proxy vagrant http-proxy

¿Cómo usar vagabundo en un entorno proxy?



vagrant http-proxy (11)

La red de mi compañía está usando proxy. Entonces cuando uso vagrant up , me mostró un error de permiso 401.

¿Cómo puedo hacer algunos ajustes para usar vagabundo?


Algunos caracteres especiales en la contraseña crean un problema en el proxy. O escapa de ellos o evita tener caracteres especiales en la contraseña.


Deberá instalar el plugin proxyconf, ya que esto hace que la configuración del proxy para las máquinas invitadas sea bastante sencilla en VagrantFile.

config.proxy.http = "http://proxy:8888" config.proxy.https = "http://proxy:8883" config.proxy.no_proxy = "localhost,127.0.0.1"

Sin embargo, hay bastantes cosas que aún podrían salir mal. En primer lugar, es probable que no pueda instalar complementos vagabundos cuando se encuentre detrás del proxy. Si ese es el caso, debe descargar la fuente, por ejemplo, desde rubygems.org e instalar desde la fuente

$ vagrant plugin install vagrant-proxyconf --plugin-source file://fully/qualified/path/vagrant-proxyconf-1.x.0.gem

Si resuelve ese problema, puede tener la fortuna de estar detrás de un proxy NTLM, lo que significa que si está utilizando * nix en sus máquinas invitadas, todavía tiene mucho camino por recorrer, porque la autenticación NTLM no es compatible de forma nativa. Hay muchas formas de resolver eso. He usado CNTLM para resolver esa parte del rompecabezas. Actúa como pegamento entre los protocolos de autorización estándar y NTLM

Para un recorrido completo, eche un vistazo a esta entrada de blog sobre la configuración de vagabundo detrás de un proxy corporativo


Detecta automáticamente la configuración de tu proxy e inyéctala en toda tu máquina virtual vagabunda

instalar el complemento de proxy

vagrant plugin install vagrant-proxyconf

agregue este conf a usted privado / usuario VagrantFile (se ejecutará para todos sus proyectos):

vi $HOME/.vagrant.d/Vagrantfile

Vagrant.configure("2") do |config| puts "proxyconf..." if Vagrant.has_plugin?("vagrant-proxyconf") puts "find proxyconf plugin !" if ENV["http_proxy"] puts "http_proxy: " + ENV["http_proxy"] config.proxy.http = ENV["http_proxy"] end if ENV["https_proxy"] puts "https_proxy: " + ENV["https_proxy"] config.proxy.https = ENV["https_proxy"] end if ENV["no_proxy"] config.proxy.no_proxy = ENV["no_proxy"] end end end

¡ahora sube tu VM!


En MS Windows, esto funciona para nosotros:

set http_proxy=< proxy_url > set https_proxy=< proxy_url >

Y el equivalente para * nix:

export http_proxy=< proxy_url > export https_proxy=< proxy_url >


Instalar proxyconf resolverá esto, pero detrás de un proxy no se puede instalar un plugin simplemente usando el comando vagrant plugin install , Bundler generará un error.

configura tu proxy en tu entorno si estás usando un sistema de tipo Unix

export http_proxy=http://user:password@host:port

u obtenga una respuesta más detallada aquí: ¿Cómo usar bundler detrás de un proxy?

después de configurar este proxyconf


Instalar proxyconf:

vagrant plugin install vagrant-proxyconf

Configure su Vagrantfile:

config.proxy.http = "http://yourproxy:8080" config.proxy.https = "http://yourproxy:8080" config.proxy.no_proxy = "localhost,127.0.0.1"


La pregunta no menciona al proveedor de VM, pero en mi caso, utilizo Virtual Box en el mismo entorno. Hay una opción en la GUI de Virtual Box que necesitaba habilitar para que funcione. Se encuentra en las preferencias de la aplicación Virtual Box: Archivo >> Preferencias ... >> Proxy . Una vez que configuré esto, pude trabajar sin problemas. Espero que este consejo también pueda ayudarlos chicos.


Si realmente desea que sus configuraciones de proxy y las instalaciones de complementos estén en su Vagrantfile, por ejemplo, si está creando un Vagrantfile solo para su entorno corporativo y no puede haber usuarios editando variables de entorno, esta fue la respuesta para mí:

ENV[''http_proxy''] = ''http://proxyhost:proxyport'' ENV[''https_proxy''] = ''http://proxyhost:proxyport'' # Plugin installation procedure from http://.com/a/28801317 required_plugins = %w(vagrant-proxyconf) plugins_to_install = required_plugins.select { |plugin| not Vagrant.has_plugin? plugin } if not plugins_to_install.empty? puts "Installing plugins: #{plugins_to_install.join('' '')}" if system "vagrant plugin install #{plugins_to_install.join('' '')}" exec "vagrant #{ARGV.join('' '')}" else abort "Installation of one or more plugins has failed. Aborting." end end Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.proxy.http = "#{ENV[''http_proxy'']}" config.proxy.https = "#{ENV[''https_proxy'']}" config.proxy.no_proxy = "localhost,127.0.0.1" # and so on

(Si no lo hace, simplemente configúrelos como variables de entorno, como las otras respuestas, y consúltelas desde las directivas env en config.proxy.http (s).)


Si su proxy requiere autenticación, es mejor configurar la variable de entorno en lugar de almacenar su contraseña en Vagrantfile. Además, su Vagrantfile puede ser utilizado fácilmente por otros que no están detrás de un proxy.

Para Mac / Linux (en Bash)

export http_proxy="http://user:password@host:port" export https_proxy="http://user:password@host:port" vagrant plugin install vagrant-proxyconf

entonces

export VAGRANT_HTTP_PROXY="http://user:password@host:port" export VAGRANT_NO_PROXY="127.0.0.1" vagrant up

Para Windows use set en lugar de exportar.

set http_proxy=http://user:password@host:port set https_proxy=%http_proxy% vagrant plugin install vagrant-proxyconf

entonces

set VAGRANT_HTTP_PROXY="%http_proxy%" set VAGRANT_NO_PROXY="127.0.0.1" vagrant up


En un host de Windows

abrir un prompt de CMD;

set HTTP_PROXY=http://proxy.yourcorp.com:80 set HTTPS_PROXY=https://proxy.yourcorp.com:443

Sustituya la dirección y el puerto en los fragmentos anteriores por los que sean apropiados para su situación. Lo anterior permanecerá establecido hasta que cierre el indicador de CMD. Si le funciona, considere agregarlas permanentemente a las variables de su entorno para que no tenga que configurarlas cada vez que abra una nueva solicitud de CMD.


En Windows , debe establecer una variable para especificar la configuración proxy, descargue el complemento vagin-proxyconf: (reemplace {PROXY_SCHEME} (http: // o https: //), {PROXY_IP} y {PROXY_PORT} por los valores correctos)

set http_proxy={PROXY_SCHEME}{PROXY_IP}:{PROXY_PORT} set https_proxy={PROXY_SCHEME}{PROXY_IP}:{PROXY_PORT}

Después de eso, puede agregar el complemento para codificar su configuración de proxy en el archivo vagabundo

vagrant plugin install vagrant-proxyconf --plugin-source http://rubygems.org

y luego puede proporcionar la configuración de config.proxy.xxx en su Vagrantfile para ser independiente de las variables de configuración del entorno