プロキシ環境下での構築

hive-builder では、サーバの構築、コンテナのビルド時に yum, PyPi, dockerhub などのリポジトリにアクセスして、ソフトウェアをダウンロードしてセットアップします。 したがって、プロキシ環境下でインターネットへのアクセスがプロキシ経由に限定されている場合、各インストーラがプロキシ経由でインタネットにアクセスするように設定する必要があります。 ここでは、 hive-builder をプロキシ環境下で使用する際の使用方法について説明します。

警告

現在のバージョンでは vagrant プロバイダあるいは prepared プロバイダを使用する場合のみプロキシ環境下で構築していただけます。

vagrant プロバイダの場合

vagrant プロバイダを使用する場合は vagrant-proxyconf プラグインを使用することで、プロキシ環境下で hive-builder を利用することが可能です。 以下のコマンドで vagrant-proxyconf プラグインを mother マシンにインストールしてください。

vagrant add vagrant-proxyconf

また、プロキシサーバの情報を mother 環境の環境変数に設定する必要があります。 設定すべき環境変数は、HTTP_PROXY、HTTPS_PROXY、NO_PROXYとそれぞれの小文字の変数です。 NO_PROXY には、リポジトリサーバのサーバ名と localhost, 127.0.0.1 を含めてください。 たとえば、プロキシサーバのURLが http://192.168.200.1:3128 の場合、 .bashrc などに以下のように記述してください。

### PROXY
export HTTP_PROXY=http://192.168.200.1:3128
export http_proxy=${HTTP_PROXY}
export HTTPS_PROXY=${HTTP_PROXY}
export https_proxy=${HTTPS_PROXY}
export NO_PROXY=p-hive0.pdns,localhost,127.0.0.1
export no_proxy=${NO_PROXY}
### PROXY END

上記の例ではリポジトリサーバのホスト名として p-hive0.pdns を指定しています。 このホスト名は、hive名が pdns で、private 環境で、サーバが1台(number_of_hosts=1)の場合のリポジトリサーバのホスト名です。 リポジトリサーバのホスト名は以下のとおり決定できます。

ステージプリフィックス + "hive" + サーバ台数から1を引いた数字 + "." + hive名

ステージプリフィックスは private 環境では "p-"、 staging 環境では "s-"、 production 環境では "" となります。

prepared プロバイダの場合

prepared プロバイダを使用する場合、事前に全てのサーバの /etc/environment でプロキシサーバの情報を環境変数に設定する必要があります。 設定すべき環境変数は、HTTP_PROXY、HTTPS_PROXY、NO_PROXYとそれぞれの小文字の変数です。 NO_PROXY には、リポジトリサーバのサーバ名と localhost, 127.0.0.1 を含めてください。 例えば、root ユーザで以下を実行します。

# cat <<'_EOF' > /etc/environment
HTTP_PROXY=http://192.168.56.100:3128
http_proxy=http://192.168.56.100:3128
HTTPS_PROXY=http://192.168.56.100:3128
https_proxy=http://192.168.56.100:3128
NO_PROXY=p-hive0.pdns,localhost,127.0.0.1
no_proxy=p-hive0.pdns,localhost,127.0.0.1
_EOF

上記の例ではリポジトリサーバのホスト名として p-hive0.pdns を指定しています。 このホスト名は、hive名が pdns で、private 環境で、サーバが1台(number_of_hosts=1)の場合のリポジトリサーバのホスト名です。 リポジトリサーバのホスト名は以下のとおり決定できます。

ステージプリフィックス + "hive" + サーバ台数から1を引いた数字 + "." + hive名

ステージプリフィックスは private 環境では "p-"、 staging 環境では "s-"、 production 環境では "" となります。