私の会社のネットワークはプロキシを使用しています。したがって、を使用するvagrant up
と、401アクセス許可エラーが表示されました。
浮浪者を使用するための設定を行うにはどうすればよいですか?
vagrant plugin install vagrant-proxyconf
。
私の会社のネットワークはプロキシを使用しています。したがって、を使用するvagrant up
と、401アクセス許可エラーが表示されました。
浮浪者を使用するための設定を行うにはどうすればよいですか?
vagrant plugin install vagrant-proxyconf
。
回答:
proxyconfをインストールします。
vagrant plugin install vagrant-proxyconf
Vagrantfileを構成します。
config.proxy.http = "http://yourproxy:8080"
config.proxy.https = "http://yourproxy:8080"
config.proxy.no_proxy = "localhost,127.0.0.1"
config.env_proxy.*
バージョン2.0で非推奨になり、に置き換えられましたconfig.proxy.*
。
config.proxy.https = "https://yourproxy:8080"
それhttps
かhttp
、2行目です
プロキシで認証が必要な場合は、パスワードをVagrantfileに保存するよりも、環境変数を設定することをお勧めします。また、Vagrantfileは、プロキシの背後にいない他のユーザーが簡単に使用できます。
Mac / Linux(Bashの場合)
export http_proxy="http://user:password@host:port"
export https_proxy="http://user:password@host:port"
vagrant plugin install vagrant-proxyconf
その後
export VAGRANT_HTTP_PROXY=${http_proxy}
export VAGRANT_HTTPS_PROXY=${https_proxy}
export VAGRANT_NO_PROXY="127.0.0.1"
vagrant up
Windowsの場合、エクスポートではなくセットを使用します。
set http_proxy=http://user:password@host:port
set https_proxy=https://user:password@host:port
vagrant plugin install vagrant-proxyconf
その後
set VAGRANT_HTTP_PROXY=%http_proxy%
set VAGRANT_HTTPS_PROXY=%https_proxy%
set VAGRANT_NO_PROXY="127.0.0.1"
vagrant up
export VAGRANT_HTTPS_PROXY=${https_proxy}
Mac / Linuxの手順で(?)を忘れました。
proxyconfをインストールすることでこれは解決しますが、プロキシの背後でコマンドを使用してプラグインをインストールすることはできません。Bundlerはvagrant plugin install
エラーを発生させます。
UNIXライクなシステムを使用している場合は、環境にプロキシを設定します
export http_proxy=http://user:password@host:port
または、ここでより詳細な回答を取得します:プロキシの背後でバンドラーを使用する方法?
この後にproxyconfを設定します
プロキシ設定を自動検出し、すべてのvagrant VMに挿入します
プロキシプラグインをインストールする
vagrant plugin install vagrant-proxyconf
このconfをプライベート/ユーザーVagrantFileに追加します(すべてのプロジェクトで実行されます)。
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
VMを起動します!
vagrant reload
は修正されるため、新しいネットワークへの接続時に自動的にプロキシ設定のイン/アウトを検出し、ユーザーに警告するか、シームレスに機能させることが最善です。 tmatilai.github.io/vagrant-proxyconfは、無効化について言及しましたが、これらの点に対処していることを確認していません。
Windowsでは、変数を設定してプロキシ設定を指定し、vagrant-proxyconfプラグインをダウンロードする必要があります({PROXY_SCHEME}(http://またはhttps://)、{PROXY_IP}および{PROXY_PORT}を適切な値に置き換えてください)。
set http_proxy={PROXY_SCHEME}{PROXY_IP}:{PROXY_PORT}
set https_proxy={PROXY_SCHEME}{PROXY_IP}:{PROXY_PORT}
その後、プラグインを追加して、vagrantファイルのプロキシ設定をハードコードできます。
vagrant plugin install vagrant-proxyconf --plugin-source http://rubygems.org
次に、Vagrantfileでconfig.proxy.xxx設定を提供して、環境設定変数から独立させることができます
プラグインproxyconfをインストールする必要があります。これにより、VagrantFileでゲストマシンのプロキシを非常に簡単に構成できるようになります。
config.proxy.http = "http://proxy:8888"
config.proxy.https = "http://proxy:8883"
config.proxy.no_proxy = "localhost,127.0.0.1"
しかし、まだうまくいかないことがかなりあります。まず、プロキシの背後にある場合、おそらくvagrantプラグインをインストールできません。その場合は、たとえばrubygems.orgからソースをダウンロードし、ソースからインストールする必要があります。
$ vagrant plugin install vagrant-proxyconf --plugin-source file://fully/qualified/path/vagrant-proxyconf-1.x.0.gem
その問題を解決すると、NTLMプロキシの背後にいるという幸運があるかもしれません。つまり、ゲストマシンで* nixを使用している場合は、NTLM認証がネイティブでサポートされていないため、いくつかの方法があります。それを解決する。私はCNTLMを使用してパズルの一部を解決しました。標準認証プロトコルとNTLMの間の接着剤として機能します
完全なウォークスルーについては、企業のプロキシの背後に浮浪者を設定することに関するこのブログエントリをご覧ください。
plugin-source
ローカルGEMからのインストールに使用するのは素晴らしいアイデアですが、Windowsでこれをまだ動作させることができていません。構文が間違っているかどうかわかりませんfile://C:/path1/path2/vagrant-proxyconf-1.5.2.gem
。私は@Martinが前述したアプローチも試しましたが、その場合でもルビジェムにコンタクトしようとしているため、これも機能しませんでした
vagrant plugin install C:/folder1/folder2/vagrant-proxyconf-1.5.2.gem --plugin-clean-sources
は--plugin-clean-sources
うまくいきました:重要なのは、Rubygemにアクセスしないようにすることです
企業環境専用のVagrantfileを作成していて、ユーザーが環境変数を編集できないようにする場合など、実際にプロキシ設定とプラグインのインストールをVagrantfileに含めたい場合は、これが私にとっての答えでした。
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
(そうしない場合は、他の回答が言うように環境変数として設定し、config.proxy.http(s)ディレクティブのenvからそれらを参照してください。)
パスワードの一部の特殊文字は、プロキシで問題を引き起こします。それらをエスケープするか、パスワードに特殊文字を含めないでください。