Vagrant で Proxy と戦う
この記事は、Kogakuin Univ Advent Calender 2015 の 4日目の記事のはずです。
事の始まり
VirtualBox を用いて、開発環境の自動構築を行ってくれる "Vagrnat" というソフトを知って早10ヶ月。(2/11に初めて知った (※TwiterのDMを遡った顔))
そこそこ使ってきたので、そろそろ色々な知識をまとめようかと思ったわけで。
Vagrant とは?
いつぞやに発表した資料を(今更)上げたので、そちらを参照に↓
Vagrant で困ったこと
Vagrantに限らず、外部ネットワーク(ex.Google...etc)に接続するときなどは必ず引っかかるものがあります。
そう、Proxyです。
Vagrant で Proxy と戦う
タイトルのあれです。
Vagrant plugin 方式
実際に私が戦ってる方法がこちら↓
$ sudo vagrant plugin install vagrant-proxyconf
Vagrant の プラグイン vagrant-proxyconf
を使ってます。
これは、大方の通信に必要なプロキシ (bashのhttp_proxy , パッケージ管理のproxy設定など)に自動的にProxy設定をしてくれます。便利。
設定方法は、 Vagrantfile
に、次のものを追記。
Vagrant.configure("2") do |config| # ↓yes proxy statement config.proxy.http = "http://<your proxy address>" config.proxy.https = "https://<your proxy address>" # ↓no proxy statement #config.proxy.http = "" #config.proxy.https = "" end
プロキシ環境外では、コメントアウトを切り替えれば変わります。
この方式の利点
利点もクソもなくて、これがないと 仕事にならない。
仕事になる前
仕事ができるようになった後
欠点
Pluginを入れるのに、一旦Proxy環境外に出ないといけないこと。本末転倒感否めないけど気にしない。
他の方法??
プラグイン入れるのがめんどくさい(そもそも本末t(ry)) 場合は、他の方法があることを先日知りました。
それは、network設定にprivete_network
を追加することです。
config.vm.network "private_network", ip: "192.168.33.10"
通常、Vagrantfileでコメントアウトされているのですが、
これを有効化すれば、おkです。
前提条件として、ホストOSでプロキシ設定をする必要があります。
総括
両方共、Vagrantで扱う分にはとても便利。いちいちProxy設定するのが(個人的に)面倒くさいのでおすすめです。
ネットワーク設定別、おすすめのプロキシ設定方法
private_network
ホストのプロキシ設定が反映されるので、問題なく使えるはずです。
もし、ゲストに対してアクセスしたい場合は、forwarded_port
を設定すれば問題なく使えるはず。
public_network
プラグインの方をおすすめします。圧倒的に楽。
と、いうわけでこんな感じです。