11 ответов:
установить 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"
если ваш прокси требует аутентификации, лучше установить переменную окружения, а не хранить пароль в 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_NO_PROXY="127.0.0.1" vagrant upдля Windows используйте набор вместо экспорта.
set http_proxy=http://user:password@host:port set https_proxy=%http_proxy% vagrant plugin install vagrant-proxyconfзатем
set VAGRANT_HTTP_PROXY="%http_proxy%" set VAGRANT_NO_PROXY="127.0.0.1" vagrant up
установка proxyconf решит эту проблему, но за прокси вы не можете установить плагин просто с помощью команды
vagrant plugin install, Bundler вызовет ошибку.установите прокси-сервер в своей среде, если вы используете unix-подобную систему
export http_proxy=http://user:password@host:portили получить более подробный ответ здесь: как использовать bundler за прокси?
после этого установите proxyconf
автоматическое определение настроек прокси-сервера и ввести их во всех ваших бродячих VM
установите плагин прокси
vagrant plugin install vagrant-proxyconfдобавьте этот conf к вам private / user 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
Теперь ваша виртуальная машина !
на хосте Windows
откройте командную строку;
set HTTP_PROXY=http://proxy.yourcorp.com:80 set HTTPS_PROXY=https://proxy.yourcorp.com:443замените адрес и порт в приведенных выше фрагментах на все, что подходит для вашей ситуации. Выше будет оставаться установленным, пока вы не закроете приглашение CMD. Если это работает для вас, подумайте о том, чтобы добавить их постоянно в переменные среды, чтобы вам не приходилось устанавливать их каждый раз, когда вы открываете новое приглашение CMD.
на 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и затем вы можете предоставить конфигурацию.полномочие.xxx настройки в вашем Vagrantfile должны быть независимыми от настроек среды переменные
вы хотите установить плагин proxyconf, так как это делает настройку прокси для гостевых машин довольно прямо вперед в VagrantFile
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Если вы решите эту проблему, у вас может быть fortune of being behind an NTLM proxy, что означает, что если вы используете *nix на своих гостевых машинах, то у вас все еще есть какой-то путь, потому что аутентификация NTLM не поддерживается изначально Есть много способов решить эту проблему. Я использовал CNTLM для решения этой части головоломки. Он действует как клей между стандартными протоколами авторизации и NTLM
для полной прогулки, взгляните на эта запись в блоге об установлении залет за корпоративного прокси-сервера
в вопросе не упоминается поставщик виртуальной машины, но в моем случае я использую Virtual Box в той же среде. В графическом интерфейсе Virtual Box есть опция, которую мне нужно было включить, чтобы заставить ее работать. Находится в настройках приложения Virtual Box:Файл >> Настройки... > > Прокси. Как только я настроил это, я смог работать без проблем. Надеюсь, что этот совет также может помочь вам, ребята.
Если вы действительно хотите, чтобы ваши прокси-конфигурации и установки плагинов были в вашем 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(Если вы этого не сделаете, просто установите их в качестве переменных среды, как говорят другие ответы, и обратитесь к ним из env в config.полномочие.директивы http(s).)
некоторые специальные символы в пароле создают проблему в прокси. Либо избежать их или избежать наличия специальных символов в пароле.
в MS Windows это работает для нас:
set http_proxy=< proxy_url > set https_proxy=< proxy_url >и эквивалент для *nix:
export http_proxy=< proxy_url > export https_proxy=< proxy_url >
Comments