Jaringan perusahaan saya menggunakan proxy. Jadi ketika saya menggunakan vagrant up
, itu menunjukkan kepada saya kesalahan izin 401.
Bagaimana saya bisa melakukan beberapa pengaturan untuk menggunakan gelandangan?
Jaringan perusahaan saya menggunakan proxy. Jadi ketika saya menggunakan vagrant up
, itu menunjukkan kepada saya kesalahan izin 401.
Bagaimana saya bisa melakukan beberapa pengaturan untuk menggunakan gelandangan?
vagrant plugin install vagrant-proxyconf
.
Jawaban:
Instal proxyconf:
vagrant plugin install vagrant-proxyconf
Konfigurasi Vagrantfile Anda:
config.proxy.http = "http://yourproxy:8080"
config.proxy.https = "http://yourproxy:8080"
config.proxy.no_proxy = "localhost,127.0.0.1"
config.env_proxy.*
tidak digunakan lagi sejak versi 2.0 dan telah diganti oleh config.proxy.*
.
config.proxy.https = "https://yourproxy:8080"
adalah itu https
atau http
di baris kedua
Jika proxy Anda memerlukan otentikasi, lebih baik mengatur variabel lingkungan daripada menyimpan kata sandi Anda di Vagrantfile. Juga Vagrantfile Anda dapat digunakan oleh orang lain dengan mudah yang tidak berada di belakang proxy.
Untuk Mac / Linux (di Bash)
export http_proxy="http://user:password@host:port"
export https_proxy="http://user:password@host:port"
vagrant plugin install vagrant-proxyconf
kemudian
export VAGRANT_HTTP_PROXY=${http_proxy}
export VAGRANT_HTTPS_PROXY=${https_proxy}
export VAGRANT_NO_PROXY="127.0.0.1"
vagrant up
Untuk Windows gunakan set, bukan ekspor.
set http_proxy=http://user:password@host:port
set https_proxy=https://user:password@host:port
vagrant plugin install vagrant-proxyconf
kemudian
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}
Pada instruksi Mac / Linux.
Menginstal proxyconf akan menyelesaikan masalah ini, tetapi di belakang proxy Anda tidak dapat menginstal plugin hanya dengan menggunakan perintah vagrant plugin install
, Bundler akan memunculkan kesalahan.
mengatur proxy Anda di lingkungan Anda jika Anda menggunakan sistem mirip unix
export http_proxy=http://user:password@host:port
atau dapatkan jawaban yang lebih rinci di sini: Bagaimana cara menggunakan bundler di belakang proxy?
setelah ini mengatur proxyconf
Deteksi otomatis pengaturan proxy Anda dan masukkan ke semua VM gelandangan Anda
instal plugin proxy
vagrant plugin install vagrant-proxyconf
tambahkan conf ini kepada Anda private / user VagrantFile (ini akan dijalankan untuk semua proyek Anda):
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
sekarang naikkan VM Anda!
vagrant reload
akan diperbaiki, dan dapat menjadi yang terbaik untuk mendeteksi pengaturan proxy masuk / keluar secara otomatis saat menyambung ke jaringan baru, dan mengingatkan pengguna, atau membuatnya bekerja dengan mulus. tmatilai.github.io/vagrant-proxyconf disebutkan menonaktifkan, tetapi tidak yakin itu membahas poin-poin ini.
Di host Windows
buka prompt CMD;
set HTTP_PROXY=http://proxy.yourcorp.com:80
set HTTPS_PROXY=https://proxy.yourcorp.com:443
Gantikan alamat dan port pada cuplikan di atas untuk apa pun yang sesuai dengan situasi Anda. Di atas akan tetap disetel sampai Anda menutup prompt CMD. Jika berhasil untuk Anda, pertimbangkan untuk menambahkannya secara permanen ke variabel lingkungan Anda sehingga Anda tidak perlu mengaturnya setiap kali Anda membuka prompt CMD baru.
Di windows , Anda harus menyetel variabel untuk menentukan setelan proxy, unduh plugin vagrant-proxyconf: (ganti {PROXY_SCHEME} (http: // atau https: //), {PROXY_IP} dan {PROXY_PORT} dengan nilai yang benar)
set http_proxy={PROXY_SCHEME}{PROXY_IP}:{PROXY_PORT}
set https_proxy={PROXY_SCHEME}{PROXY_IP}:{PROXY_PORT}
Setelah itu, Anda dapat menambahkan plugin ke hardcode pengaturan proxy Anda di file vagrant
vagrant plugin install vagrant-proxyconf --plugin-source http://rubygems.org
dan kemudian Anda dapat memberikan pengaturan config.proxy.xxx di Vagrantfile agar tidak bergantung pada variabel pengaturan lingkungan
Anda akan ingin menginstal plugin proxyconf karena ini membuat konfigurasi proxy untuk mesin tamu cukup mudah di VagrantFile
config.proxy.http = "http://proxy:8888"
config.proxy.https = "http://proxy:8883"
config.proxy.no_proxy = "localhost,127.0.0.1"
Namun, ada beberapa hal yang masih bisa salah. Pertama, Anda mungkin tidak dapat menginstal plugin gelandangan saat berada di belakang proxy. Jika demikian, Anda harus mengunduh sumbernya misalnya dari rubygems.org dan menginstal dari sumber
$ vagrant plugin install vagrant-proxyconf --plugin-source file://fully/qualified/path/vagrant-proxyconf-1.x.0.gem
Jika Anda memecahkan masalah itu, Anda mungkin beruntung berada di belakang proxy NTLM, yang berarti bahwa jika Anda menggunakan * nix pada mesin tamu Anda, maka Anda masih memiliki beberapa cara untuk melakukannya, karena otentikasi NTLM tidak didukung secara native Ada banyak cara memecahkan itu. Saya telah menggunakan CNTLM untuk memecahkan bagian dari teka-teki itu. Ini bertindak sebagai perekat antara protokol otorisasi standar dan NTLM
Untuk panduan lengkapnya, lihat entri blog ini tentang pengaturan gelandangan di belakang proxy perusahaan
plugin-source
untuk menginstal dari GEM lokal, tetapi saya belum berhasil membuatnya berfungsi di Windows. Saya tidak yakin apakah sintaks saya salah, seperti file://C:/path1/path2/vagrant-proxyconf-1.5.2.gem
? Saya juga mencoba pendekatan yang @Martin sebutkan di atas, ini juga tidak berhasil karena masih mencoba menghubungi rubygems dalam kasus itu
vagrant plugin install C:/folder1/folder2/vagrant-proxyconf-1.5.2.gem --plugin-clean-sources
Kuncinya adalah --plugin-clean-sources
yang menyebabkannya tidak mencoba mengakses rubygems
Pertanyaannya tidak menyebutkan Penyedia VM tetapi dalam kasus saya, saya menggunakan Kotak Virtual di bawah lingkungan yang sama. Ada opsi di GUI Kotak Virtual yang perlu saya aktifkan untuk membuatnya berfungsi. Terletak di preferensi aplikasi Kotak Virtual: File >> Preferensi ... >> Proxy . Setelah saya mengkonfigurasi ini, saya dapat bekerja tanpa masalah. Semoga tip ini juga bisa membantu kalian.
Jika Anda benar-benar ingin konfigurasi proxy dan penginstalan plugin Anda ada di Vagrantfile Anda, misalnya jika Anda membuat Vagrantfile hanya untuk lingkungan perusahaan Anda dan tidak dapat meminta pengguna mengedit variabel lingkungan, ini adalah jawaban untuk saya:
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
(Jika tidak, atur saja sebagai variabel lingkungan seperti jawaban lain dan rujuk dari env di arahan config.proxy.http (s).)
Beberapa karakter khusus dalam kata sandi membuat masalah di proxy. Keluar dari mereka atau hindari memiliki karakter khusus dalam kata sandi.