우리 회사의 네트워크가 프록시를 사용하고 있습니다. 그래서을 사용할 때 vagrant up
401 권한 오류가 표시되었습니다.
방랑자를 사용하려면 어떻게 설정해야합니까?
우리 회사의 네트워크가 프록시를 사용하고 있습니다. 그래서을 사용할 때 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
제 라인
프록시에 인증이 필요한 경우 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를 설치하면이 문제가 해결되지만 프록시 뒤에는 단순히 명령을 사용하여 플러그인을 설치할 수 없으며 vagrant plugin install
Bundler에서 오류가 발생합니다.
유닉스 계열 시스템을 사용하는 경우 환경에서 프록시 설정
export http_proxy=http://user:password@host:port
또는 여기에서 더 자세한 답변을 얻으십시오. 프록시 뒤에서 번 들러를 사용하는 방법?
이 설정 후 proxyconf
프록시 설정을 자동으로 감지하고 모든 방랑자 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 설정을 제공하여 환경 설정 변수에 대해 독립적으로 설정할 수 있습니다.
vagrant plugin install vagrant-proxyconf --plugin-source http://rubygems.org
VagrantFile에서 게스트 머신에 대한 프록시를 매우 간단하게 구성 할 수 있으므로 proxyconf 플러그인을 설치하는 것이 좋습니다.
config.proxy.http = "http://proxy:8888"
config.proxy.https = "http://proxy:8883"
config.proxy.no_proxy = "localhost,127.0.0.1"
그러나 여전히 잘못 될 수있는 몇 가지 사항이 있습니다. 첫째, 프록시 뒤에있을 때 방랑 플러그인을 설치할 수 없습니다. 이 경우 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이 위에서 언급 한 접근 방식을 시도했지만,이 경우에도 여전히 rubygems에 연락을 시도하고 있기 때문에 작동하지 않았습니다.
vagrant plugin install C:/folder1/folder2/vagrant-proxyconf-1.5.2.gem --plugin-clean-sources
열쇠는--plugin-clean-sources
그것을 액세스 젬하려고하지 일으키는
실제로 프록시 구성과 플러그인 설치가 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에서 참조하십시오.)