it-swarm.com.de

Wie verwende ich Vagrant in einer Proxy-Umgebung?

Das Netzwerk meines Unternehmens verwendet einen Proxy. Also, wenn ich vagrant up, es zeigte mir einen 401-Berechtigungsfehler.

Wie kann ich Einstellungen vornehmen, um Vagrant zu verwenden?

87
ithelloworld

Installieren Sie proxyconf:

vagrant plugin install vagrant-proxyconf

Konfigurieren Sie Ihr Vagrantfile:

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

Wenn Ihr Proxy eine Authentifizierung erfordert, ist es besser, die Umgebungsvariable festzulegen, als Ihr Kennwort in der Vagrant-Datei zu speichern. Auch Ihr Vagrantfile kann von anderen leicht benutzt werden, die sich nicht hinter einem Proxy befinden.

Für Mac/Linux (in Bash)

export http_proxy="http://user:[email protected]:port"
export https_proxy="http://user:[email protected]:port"
vagrant plugin install vagrant-proxyconf

dann

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

Für Windows anstelle von Export festlegen.

set http_proxy=http://user:[email protected]:port
set https_proxy=%http_proxy%
vagrant plugin install vagrant-proxyconf

dann

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

Die Installation von proxyconf löst das Problem, aber hinter einem Proxy, den Sie nicht einfach mit dem Befehl vagrant plugin install Installieren können, wird Bundler einen Fehler auslösen.

stellen Sie Ihren Proxy in Ihrer Umgebung ein, wenn Sie ein Unix-ähnliches System verwenden

export http_proxy=http://user:[email protected]:port

oder erhalten Sie hier eine ausführlichere Antwort: Wie verwende ich Bundler hinter einem Proxy?

danach Proxyconf einrichten

53
pingween

Erkennen Sie Ihre Proxy-Einstellungen automatisch und fügen Sie sie in alle Ihre virtuellen Computer ein

installieren Sie das Proxy-Plugin

vagrant plugin install vagrant-proxyconf

füge dieses conf zu deinem privaten/Benutzer VagrantFile hinzu (es wird für alle deine Projekte ausgeführt):

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

jetzt geht's los VM!

27
quazardous

Auf einem Windows-Host

öffnen Sie eine CMD-Eingabeaufforderung.

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

Ersetzen Sie die Adresse und den Port in den obigen Ausschnitten durch das, was für Ihre Situation angemessen ist. Das Obige bleibt gesetzt, bis Sie die CMD-Eingabeaufforderung schließen. Wenn dies bei Ihnen funktioniert, sollten Sie sie dauerhaft zu Ihren Umgebungsvariablen hinzufügen, damit Sie sie nicht jedes Mal festlegen müssen, wenn Sie eine neue CMD-Eingabeaufforderung öffnen.

11
snacks

nter Windows müssen Sie eine Variable festlegen, um die Proxy-Einstellungen festzulegen. Laden Sie das Plugin vagrant-proxyconf herunter: (Ersetzen Sie {PROXY_SCHEME} (http: // oder https: //), {PROXY_IP} und {PROXY_PORT } durch die richtigen Werte)

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

Danach können Sie das Plugin hinzufügen, um Ihre Proxy-Einstellungen in der vagrant-Datei fest zu codieren

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

und dann können Sie config.proxy.xxx-Einstellungen in Ihrer Vagrant-Datei bereitstellen, um unabhängig von Umgebungsvariablen zu sein

9
l.cotonea

Sie sollten das Plugin proxyconf installieren, da dies die Konfiguration des Proxys für die Gastcomputer im VagrantFile ziemlich einfach macht

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

Es gibt jedoch einige Dinge, die immer noch schief gehen könnten. Erstens können Sie wahrscheinlich keine vagrant-Plugins installieren, wenn Sie sich hinter dem Proxy befinden. In diesem Fall sollten Sie die Quelle herunterladen, z. von rubygems.org und von der Quelle installieren

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

Wenn Sie dieses Problem lösen, könnten Sie das Glück haben, sich hinter einem NTLM-Proxy zu befinden. Wenn Sie also * nix auf Ihren Gastcomputern verwenden, haben Sie noch einen weiten Weg vor sich, da die NTLM-Authentifizierung von Haus aus nicht unterstützt wird. Es gibt viele Möglichkeiten das zu lösen. Ich habe CNTLM verwendet, um den Teil des Puzzles zu lösen. Es fungiert als Bindeglied zwischen Standardautorisierungsprotokollen und NTLM

Schauen Sie sich dieser Blogeintrag an, um einen vollständigen Überblick über die Einrichtung eines Vagabunden hinter einem Unternehmens-Proxy zu erhalten

4
Rune FS

In der Frage wird der VM Provider nicht erwähnt, aber in meinem Fall verwende ich Virtual Box in derselben Umgebung. Es gibt eine Option in der Virtual Box-GUI, die ich aktivieren musste, um sie zu erstellen Befindet sich in den Einstellungen der Virtual Box-App: Datei >> Einstellungen ... >> Proxy Nachdem ich dies konfiguriert habe, konnte ich problemlos arbeiten. Ich hoffe, dieser Tipp kann euch auch helfen .

2
James

Einige Sonderzeichen im Kennwort verursachen ein Problem im Proxy. Entfliehen Sie ihnen oder vermeiden Sie Sonderzeichen im Kennwort.

1
ernitingoel

Wenn Ihre Proxy-Konfigurationen und Plugin-Installationen tatsächlich in Ihrer Vagrant-Datei enthalten sein sollen, wenn Sie beispielsweise eine Vagrant-Datei nur für Ihre Unternehmensumgebung erstellen und Benutzer die Umgebungsvariablen nicht bearbeiten dürfen, war dies die Antwort für mich:

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

(Wenn nicht, legen Sie sie einfach als Umgebungsvariablen fest, wie die anderen Antworten sagen, und verweisen Sie in den Anweisungen config.proxy.http (s) auf env.)

1
eis

In MS Windows funktioniert dies für uns:

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

Und das Äquivalent für * nix:

export http_proxy=< proxy_url >
export https_proxy=< proxy_url >
0
csoria

In PowerShell können Sie die Umgebungsvariablen http_proxy und https_proxy wie folgt festlegen:

$env:http_proxy="http://www-cache-nrs.si.fr.intraorange:3128"
$env:https_proxy="http://www-cache-nrs.si.fr.intraorange:3128"
0
kal3v