Vagrant プロジェクトには、ゲストが存在する前のホスト側ダウンロード経路と、ゲストのプロビジョナやパッケージツール用の別の経路があります。それぞれが実行される場所で設定してください。

これらの変数を使うホスト側ツールの場合、経路の例は次のとおりです:

export http_proxy=http://gateway.example:8080
export https_proxy=http://gateway.example:8080

Vagrant は HTTP ボックスのダウンロード用に http_proxy を文書化しています。プラグインの取得にもホストからの到達性が必要で、ゲスト設定用プラグインは自分自身をダウンロードできません。HTTPS の宛先でも HTTP プロキシの値を使えます。該当するホストまたはゲストのクライアントにプロキシ資格情報が設定されていない場合、許可された公開ダウンロードには HTTP プロキシ一覧から適切な HTTP エンドポイントを候補として得られます。

互換性のある vagrant-proxyconf が既にインストールされているなら、Vagrantfile を通じてゲストに経路を与えます:

Vagrant.configure("2") do |config|
  if Vagrant.has_plugin?("vagrant-proxyconf")
    config.proxy.http = "http://gateway.example:8080"
    config.proxy.https = "http://gateway.example:8080"
    config.proxy.no_proxy = "localhost,127.0.0.1"
  end
end

プラグインはプロビジョナより前に、対応するゲスト設定を書き込みます。VAGRANT_HTTP_PROXY や関連する入力はファイル設定を上書きすることがあるため、変更が反映されないときはそれらを確認してください。

ゲストから見た localhost はゲスト自身です。ホストのループバック上のプロキシには、ホスト URL をコピーするのではなく明示的に到達できる経路が必要です。シェルプロビジョナの export もそのシェルと子プロセスで終わり、その後のログインやサービスのポリシーを確立しません。

削除するには、ゲストに既に書き込まれた設定をプラグインの文書化された空/false 入力で消去します。ホストのターミナルを閉じても、これらの永続ファイルは削除されません。

関連記事