vagrant-proxyconf で行う ゲストOSへのかんたんProxy設定

投稿者 : OSCA

[PR] 関東地方の美しい夜景を観にいこう。 夜景サイト「夜景散歩」で夜景スポットを検索

 本稿では Vagrant のゲストOSに簡単に Proxy の設定を行うことができるプラグイン vagrant-proxyconf について説明します。

vagrant-proxyconf の概要

 vagrant-proxyconf はゲストOSに Proxy の設定を自動的にしてくれる Vagrant プラグインで、GitHub のこちらのページで開発が行われています。この vagrant-proxyconf プラグインを利用すると、ゲストOSの以下の機能に対して Proxy の設定を自動的に行ってくれます。

  • 多くのプログラムがサポートしている http_proxy, https_proxy などの環境変数
  • Chef provisioners
  • apt
  • Docker
  • npm
  • Yum
  • PEAR
  • Subversion

 いちいち Proxy の設定を1つずつ設定する手間が省けて、とてもありがたいですね。

手順1: vagrant-proxyconf プラグインのインストール

 ではさっそく、vagrant-proxyconf プラグインをインストールしてみたいと思います。 プラグインのインストールは下記のコマンドで行えます。

# vagrant plugin install vagrant-proxyconf
Installing the 'vagrant-proxyconf' plugin. This can take a few minutes...
Fetching: vagrant-proxyconf-1.5.2.gem (100%)
Installed the plugin 'vagrant-proxyconf (1.5.2)'!

 インストールされているプラグインを一覧表示する以下のコマンドで、vagrant-proxyconf プラグインが本当にインストールできたかを確かめましょう。 次のように vagrant-proxyconf が結果に表示されればOKです。

# vagrant plugin list
vagrant-proxyconf (1.5.2)

手順2: Vagrantfile に設定を追記

 プラグインのインストールが完了したら、次は Vagrantfile に設定を追記します。 ここでは、Proxy のホスト名が proxy.mycompany.co.jp で Proxy ポートが 8080 であると想定して、下記のように追記します。

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  if Vagrant.has_plugin?("vagrant-proxyconf")
    config.proxy.http = "http://proxy.mycompany.co.jp:8080/"
    config.proxy.https = "http://proxy.mycompany.co.jp:8080/"
    config.proxy.no_proxy = "localhost,127.0.0.1"
  end
  (snip)
end

 設定した項目のそれぞれの意味は次のとおりです。

項目意味
config.proxy.httpHTTP通信の際に利用するプロキシサーバー
config.proxy.httpsHTTPS通信の際に利用するプロキシサーバー
config.proxy.no_proxyプロキシを利用しない通信先のホスト名 (カンマ区切りで複数指定可能)

動作確認

 それではゲストOSを起動してみましょう。 起動時の出力に中に下記のような「Configuring proxy ~」という文言が出力されるようになったはずです。 これで、ゲストOSに Proxy を設定していることが確認できます。

# vagrant up
(略)
[default] Configuring proxy environment variables...
[default] Configuring proxy for Yum...

おわりに

 本稿では Vagrant のゲストOSに簡単に Proxy の設定ができる vagrant-proxyconf の概要と導入方法について説明しました。 企業内での Vagrant 利用には欠かせないプラグインかもしれませんネ。

Vagrant入門へ戻る

Vagrantのトップへ戻る

著者 : OSCA

OSCA

Java, PHP 系のWEBエンジニア。 WEBエンジニア向けコミュニティ「WEBエンジニア勉強会」を主催。 個人として何か一つでも世の中の多くの人に使ってもらえるものを作ろうと日々奮闘中。
@engineer_osca