Comment utiliser vagrant dans un environnement proxy?

le réseau de ma compagnie utilise proxy. Donc quand j'ai utilisé vagrant up , il m'a montré une erreur de permission 401.

comment utiliser vagrant?

81
demandé sur Cœur 2013-11-09 09:09:35

11 réponses

installer proxyconf:

vagrant plugin install vagrant-proxyconf

configurer votre fichier Vagrant:

config.proxy.http     = "http://yourproxy:8080"
config.proxy.https    = "http://yourproxy:8080"
config.proxy.no_proxy = "localhost,127.0.0.1"
88
répondu Alejandro Moreno 2014-06-03 13:16:09

si votre proxy nécessite une authentification, il est préférable de définir la variable d'environnement plutôt que de stocker votre mot de passe dans le Vagrantfile. De plus, votre Vagrantfile peut être utilisé facilement par d'autres personnes qui ne sont pas derrière un mandataire.

Pour Mac/Linux (Bash)

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

puis

export VAGRANT_HTTP_PROXY=${http_proxy}
export VAGRANT_NO_PROXY="127.0.0.1"
vagrant up

Pour Windows utiliser set au lieu de export.

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

puis

set VAGRANT_HTTP_PROXY="%http_proxy%"
set VAGRANT_NO_PROXY="127.0.0.1"
vagrant up
66
répondu rjdkolb 2018-08-21 02:11:26

installer proxyconf résoudra ce problème, mais derrière un proxy vous ne pouvez pas installer un plugin simplement en utilisant la commande vagrant plugin install , Bundler soulèvera une erreur.

définissez votre proxy dans votre environnement si vous utilisez un système de type unix

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

ou obtenez une réponse plus détaillée ici: comment utiliser bundler derrière un proxy?

après cette mise en place proxyconf

53
répondu pingween 2017-05-23 12:18:09

détecter automatiquement les paramètres de votre proxy et de les injecter dans toutes vos vagrant VM

installer le plugin proxy

vagrant plugin install vagrant-proxyconf

ajouter ce conf à vous Privé/utilisateur VagrantFile (il sera exécuté pour tous vos projets):

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

maintenant en haut de votre VM !

26
répondu quazardous 2014-11-07 12:01:54

sur un hôte Windows

ouvrir une invite CMD;

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

remplacez l'adresse et le port dans les extraits ci-dessus à tout ce qui est approprié à votre situation. Le paramètre ci-dessus restera activé jusqu'à ce que vous fermiez L'invite CMD. Si cela fonctionne pour vous, envisagez de les ajouter de façon permanente à vos variables d'environnement afin que vous n'ayez pas à les définir chaque fois que vous ouvrez une nouvelle invite CMD.

10
répondu snacks 2014-12-05 15:03:58

sous windows , vous devez définir une variable pour spécifier les paramètres de proxy, télécharger le plugin vagrant-proxyconf: (remplacer {PROXY_SCHEME}(http:// ou https://), {PROXY_IP} et {PROXY_PORT} par les bonnes valeurs)

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

après cela, vous pouvez ajouter le plugin pour coder vos paramètres de proxy dans le fichier vagrant

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

et ensuite vous pouvez fournir la configuration.proxy.xxx paramètres dans votre Vagrantfile pour être indépendant contre les variables d'environnement

9
répondu l.cotonea 2016-02-04 08:10:48

vous voudrez installer le plugin proxyconf car cela rend la configuration du proxy pour les machines invités assez simple en avant dans le VagrantFile

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

cependant, il y a encore pas mal de choses qui pourraient mal tourner. Tout d'abord, vous ne pouvez probablement pas installer de plugins vagrant lorsque vous êtes derrière le proxy. Si c'est le cas, vous devriez télécharger la source par exemple à partir de rubygems.org et installer à partir de la source

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

si vous résolvez ce problème, vous pourriez avoir la chance d'être derrière un proxy NTLM, ce qui signifie que si vous utilisez *nix sur vos machines invitées, vous avez encore du chemin à faire, parce que L'authentification NTLM n'est pas supportée nativement. Il y a plusieurs façons de résoudre cela. J'ai utilisé CNTLM pour résoudre cette partie du puzzle. Il sert de colle entre les protocoles d'autorisation standard et NTLM

pour une promenade complète, jetez un oeil à cette entrée de blog à propos réglage de vagrant derrière un proxy d'entreprise

4
répondu Rune FS 2015-12-02 11:17:02

la question ne mentionne pas le fournisseur de VM mais dans mon cas, J'utilise la boîte virtuelle dans le même environnement. Il y a une option dans la boîte virtuelle GUI que j'avais besoin d'activer pour la faire fonctionner. Est situé dans la boîte virtuelle préférences de l'application: Fichier >> Préférences... > > Proxy . Une fois que j'ai configuré ceci, j'ai pu travailler sans problème. J'espère que ce tuyau peut aussi vous aider.

2
répondu James 2014-12-06 01:30:00

si vous voulez réellement que vos configurations de proxy et vos installations de plugin soient dans votre fichier Vagrantfile, par exemple si vous faites un fichier Vagrantfile juste pour votre environnement d'entreprise et que vous ne pouvez pas avoir d'utilisateurs éditant des variables d'environnement, c'était la réponse pour moi:

ENV['http_proxy']  = 'http://proxyhost:proxyport'
ENV['https_proxy'] = 'http://proxyhost:proxyport'

# Plugin installation procedure from http://stackoverflow.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 vous ne le faites pas, définissez-les comme variables d'environnement comme le disent les autres réponses et référez-vous à elles depuis env dans config.proxy.http(s) des directives.)

1
répondu eis 2015-10-23 12:07:40

certains caractères spéciaux du mot de passe créent un problème dans proxy. Soit les échapper ou éviter d'avoir des caractères spéciaux dans le mot de passe.

1
répondu ernitingoel 2017-02-02 14:51:18

dans MS Windows cela fonctionne pour nous:

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

et l'équivalent pour * nix:

export http_proxy=< proxy_url >
export https_proxy=< proxy_url >
0
répondu csoria 2015-09-15 07:11:23