proxy vagrant - Как использовать бродягу в прокси-среде?





windows settings (10)


В MS Windows это работает для нас:

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

И эквивалент для * nix:

export http_proxy=< proxy_url >
export https_proxy=< proxy_url >

Сеть моей компании использует прокси. Поэтому, когда я использую vagrant up , он показал мне ошибку разрешения 401.

Как я могу сделать некоторые настройки для использования бродяг?




Некоторые специальные символы в пароле создают проблему в прокси. Либо избегайте их, либо избегайте использования специальных символов в пароле.




На хосте Windows

откройте приглашение CMD;

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

Замените адрес и порт в приведенных выше фрагментах на все, что подходит для вашей ситуации. Вышеуказанное будет сохранено до тех пор, пока вы не закроете подсказку CMD. Если это сработает для вас, подумайте о том, чтобы добавить их постоянно к переменным среды, чтобы вам не приходилось устанавливать их каждый раз, когда вы открываете новое приглашение CMD.




Установите 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 только для своей корпоративной среды и не можете изменять параметры среды для пользователей, это был ответ для меня:

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

# Plugin installation procedure from http://.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.proxy.http (s).)




В вопросе не упоминается поставщик VM, но в моем случае я использую Virtual Box в той же среде. В графическом интерфейсе Virtual Box есть опция, которую мне нужно включить, чтобы она работала. Располагается в настройках приложения Virtual Box: Файл >> Настройки ... >> Прокси . Как только я это настроил, я смог работать без проблем. Надеюсь, этот совет также поможет вам, ребята.




Установка proxyconf решит это, но за прокси вы не сможете установить плагин, просто используя команду vagrant vagrant plugin install , Bundler поднимет ошибку.

установите свой прокси-сервер в своей среде, если вы используете систему типа unix

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

или получить более подробный ответ здесь: Как использовать bundler за прокси-сервером?

после этого настройте proxyconf




Если ваш прокси требует аутентификации, лучше установить переменную окружения, а не хранить пароль в Vagrantfile. Также ваш Vagrantfile может быть легко использован другими людьми, которые не находятся за прокси-сервером.

Для Mac / Linux (в Bash)

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

тогда

export VAGRANT_HTTP_PROXY="http://user:[email protected]:port"
export VAGRANT_NO_PROXY="127.0.0.1"
vagrant up

Для Windows используйте вместо экспорта.

set http_proxy=http://user:[email protected]: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



Автоматически определяйте настройки прокси-сервера и вводите их во все ваши бродячие виртуальные машины

установить прокси-плагин

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

теперь ваша виртуальная машина!




Я предисловию к моему ответу, признав, что у меня нет опыта работы с Docker, кроме как как жадный наблюдатель того, что выглядит действительно опрятным решением, которое набирает много сил.

У меня есть приличный опыт работы с Vagrant и могу очень рекомендовать его. Это, безусловно, более тяжелое решение с точки зрения того, что он основан на виртуальной машине вместо LXC. Тем не менее, я нашел достойный ноутбук (8 ГБ оперативной памяти, i5 / i7 CPU) без проблем с использованием виртуальной машины с использованием Vagrant / VirtualBox наряду с инструментами разработки.

Одной из замечательных вещей с Vagrant является интеграция с сценариями Puppet / Chef / shell для автоматизации конфигурации. Если вы используете один из этих параметров для настройки рабочей среды, вы можете создать среду разработки, которая будет близка к идентичной, как вы собираетесь получить, и это именно то, что вы хотите.

Другая замечательная вещь с Vagrant заключается в том, что вы можете переименовать свой Vagrantfile вместе со своим кодом приложения. Это означает, что все остальные члены вашей команды могут поделиться этим файлом, и вам гарантировано, что все работают с той же конфигурацией среды.

Интересно, что бродяга и докер могут быть бесплатными. Vagrant может быть расширен для поддержки различных поставщиков виртуализации, и возможно, что Docker является одним из таких поставщиков, который получит поддержку в ближайшем будущем. См. https://github.com/dotcloud/docker/issues/404 для недавней дискуссии по этой теме.





proxy vagrant http-proxy