Şirketimin ağı proxy kullanıyor. Bu yüzden kullandığımda vagrant up
bana 401 izin hatası gösterdi.
Serseri kullanmak için nasıl bir ayar yapabilirim?
Şirketimin ağı proxy kullanıyor. Bu yüzden kullandığımda vagrant up
bana 401 izin hatası gösterdi.
Serseri kullanmak için nasıl bir ayar yapabilirim?
vagrant plugin install vagrant-proxyconf
.
Yanıtlar:
Proxyconf'u yükleyin:
vagrant plugin install vagrant-proxyconf
Vagrantfile dosyanızı yapılandırın:
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 sürümü itibariyle kullanımdan kaldırılmıştır ve ile değiştirilmiştir config.proxy.*
.
config.proxy.https = "https://yourproxy:8080"
bu mu https
yoksa http
ikinci satırda mı
Proxy'niz kimlik doğrulaması gerektiriyorsa, parolanızı Vagrantfile'da saklamak yerine ortam değişkenini ayarlamak daha iyidir. Ayrıca Vagrantfile dosyanız proxy arkasında olmayan başkaları tarafından da kolaylıkla kullanılabilir.
Mac / Linux için (Bash'de)
export http_proxy="http://user:password@host:port"
export https_proxy="http://user:password@host:port"
vagrant plugin install vagrant-proxyconf
sonra
export VAGRANT_HTTP_PROXY=${http_proxy}
export VAGRANT_HTTPS_PROXY=${https_proxy}
export VAGRANT_NO_PROXY="127.0.0.1"
vagrant up
Windows için dışa aktarma yerine set kullanın.
set http_proxy=http://user:password@host:port
set https_proxy=https://user:password@host:port
vagrant plugin install vagrant-proxyconf
sonra
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 talimatlarında unuttunuz (?) .
Proxyconf'u kurmak bunu çözecektir, ancak bir proxy'nin arkasında sadece komutu kullanarak bir eklenti kuramazsınız vagrant plugin install
, Bundler bir hata verecektir.
Unix benzeri bir sistem kullanıyorsanız, proxy'nizi ortamınızda ayarlayın
export http_proxy=http://user:password@host:port
veya buradan daha ayrıntılı bir yanıt alın: Bir proxy arkasında paketleyici nasıl kullanılır?
bundan sonra proxyconf kurulumu
Proxy ayarlarınızı otomatik olarak algılayın ve tüm serseri sanal makinenize enjekte edin
proxy eklentisini yükle
vagrant plugin install vagrant-proxyconf
bu conf'i size özel / kullanıcı VagrantFile ekleyin (tüm projeleriniz için yürütülecektir):
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
şimdi sanal makinenizi hazırlayın!
vagrant reload
çevrilecek ve tek bir düzeltilecek ve yeni ağlara bağlanırken proxy ayarlarını otomatik olarak tespit etmek ve kullanıcıyı uyarmak veya sorunsuz çalışmasını sağlamak en iyisi olabilir. tmatilai.github.io/vagrant-proxyconf devre dışı bırakmadan bahsetti, ancak bu noktaları ele aldığından emin değil.
Windows ana bilgisayarında
bir CMD istemi açın;
set HTTP_PROXY=http://proxy.yourcorp.com:80
set HTTPS_PROXY=https://proxy.yourcorp.com:443
Yukarıdaki snippet'lerdeki adresi ve bağlantı noktasını durumunuza uygun olanla değiştirin. CMD istemini kapatana kadar yukarıdakiler ayarlanmış olarak kalacaktır. İşinize yararsa, bunları ortam değişkenlerinize kalıcı olarak eklemeyi düşünün, böylece yeni bir CMD istemini her açtığınızda bunları ayarlamanız gerekmez.
Windows'ta , proxy ayarlarını belirtmek için bir değişken ayarlamanız, vagrant-proxyconf eklentisini indirmeniz gerekir: ({PROXY_SCHEME} (http: // veya https: //), {PROXY_IP} ve {PROXY_PORT} 'u doğru değerlerle değiştirin)
set http_proxy={PROXY_SCHEME}{PROXY_IP}:{PROXY_PORT}
set https_proxy={PROXY_SCHEME}{PROXY_IP}:{PROXY_PORT}
Bundan sonra, proxy ayarlarınızı vagrant dosyasında sabit kodlamak için eklentiyi ekleyebilirsiniz.
vagrant plugin install vagrant-proxyconf --plugin-source http://rubygems.org
ve sonra Vagrantfile'ınızda config.proxy.xxx ayarlarını, ortam ayarları değişkenlerinden bağımsız olacak şekilde sağlayabilirsiniz.
Proxyconf eklentisini kurmak isteyeceksiniz çünkü bu, konuk makineler için proxy'yi VagrantFile'da oldukça basit bir şekilde yapılandırır.
config.proxy.http = "http://proxy:8888"
config.proxy.https = "http://proxy:8883"
config.proxy.no_proxy = "localhost,127.0.0.1"
Ancak yine de yanlış gidebilecek pek çok şey var. İlk olarak, proxy'nin arkasındayken muhtemelen serseri eklentileri yükleyemezsiniz. Eğer durum buysa, örneğin rubygems.org'dan kaynağı indirmeli ve kaynaktan yüklemelisiniz.
$ vagrant plugin install vagrant-proxyconf --plugin-source file://fully/qualified/path/vagrant-proxyconf-1.x.0.gem
Bu sorunu çözerseniz, bir NTLM proxy'sinin arkasında olma şansına sahip olabilirsiniz, bu da, konuk makinelerinizde * nix kullanıyorsanız, gidecek bir yolunuz olduğu anlamına gelir, çünkü NTLM kimlik doğrulaması yerel olarak desteklenmez Birçok yol vardır bunu çözmek için. Bulmacanın bu kısmını çözmek için CNTLM kullandım. Standart yetkilendirme protokolleri ile NTLM arasında tutkal görevi görür
Tam bir inceleme için, kurumsal bir proxy'nin arkasında serseri kurmakla ilgili bu blog girişine bir göz atın
plugin-source
Yerel bir GEM'den yüklemek için kullanmak harika bir fikir , ancak bunu henüz Windows'ta çalıştırmayı başaramadım. Sözdizimimin yanlış olup olmadığından emin değilim, örneğin file://C:/path1/path2/vagrant-proxyconf-1.5.2.gem
? Ayrıca @Martin'in yukarıda bahsettiği yaklaşımı da denedim, bu da işe yaramadı çünkü bu durumda hala rubygems ile iletişim kurmaya çalışıyor
vagrant plugin install C:/folder1/folder2/vagrant-proxyconf-1.5.2.gem --plugin-clean-sources
Anahtar, --plugin-clean-sources
rubygems'e erişmeye çalışmamasına neden olan
Soru VM Sağlayıcısından bahsetmiyor ama benim durumumda aynı ortamda Virtual Box kullanıyorum. Sanal Kutu GUI'sinde, çalışmasını sağlamak için etkinleştirmem gereken bir seçenek var. Virtual Box uygulaması tercihlerinde bulunur: Dosya >> Tercihler ... >> Proxy . Bunu yapılandırdıktan sonra sorunsuz çalışabildim. Umarım bu ipucu size yardımcı olabilir.
Proxy yapılandırmalarınızın ve eklenti kurulumlarınızın Vagrantfile'ınızda olmasını gerçekten istiyorsanız, örneğin yalnızca kurumsal ortamınız için bir Vagrantfile oluşturuyorsanız ve kullanıcıların ortam değişkenlerini düzenlemesini sağlayamıyorsanız, bu benim için cevaptı:
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
(Yapmazsanız, onları diğer yanıtların söylediği gibi ortam değişkenleri olarak ayarlayın ve bunlara config.proxy.http (s) direktiflerindeki env'den bakın.)
Paroladaki bazı Özel karakterler proxy'de sorun yaratır. Ya bunlardan kaçının ya da şifrede özel karakterler kullanmaktan kaçının.