連載
» 2017年02月24日 05時00分 公開

【追記あり】今すぐ試せる、ブルーグリーンデプロイメント環境の構築手順(構築の仕上げと動作検証方法)OpenStack上に構築する、ブルーグリーンデプロイメント実践入門(5)(2/4 ページ)

[ユニアデックス株式会社]

ステップ5:BGDのための「Heat」ファイルを構成する

5-1:Heatファイルの構成と役割

 ステップ2で展開した「openstack_heat_bgd-master/」ディレクトリ内にあるファイルの内容と役割を確認しましょう。以下のファイルが格納されています(表7)。

表7 「openstack_heat_bgd-master/」ディレクトリに含まれるファイル
ファイル名 内容
create_autoscale_stack.sh BGD環境を構築するHeatを実行するシェルスクリプト
delete_autoscale_stack.sh BGD環境を削除するHeatを実行するシェルスクリプト
autoscale-web.yaml BGD環境のWebサーバ構築用Heatテンプレート
autoscale-web-lb-member.yaml BGD環境のロードバランサー構築用Heatテンプレート
create_external.yaml BGD環境のexternalネットワークおよびルーター構築用Heatテンプレート
create_net.yaml BGD環境のテナントネットワーク構築用Heatテンプレート

 「/var/tmp/UNIADEX_BGD-master/openstack_heat_bgd-master/」へ移動し、各ファイルを順に設定していきます。

#cd /var/tmp/UNIADEX_BGD-master/openstack_heat_bgd-master/
「/var/tmp/UNIADEX_BGD-master/openstack_heat_bgd-master/」へ移動する
  • create_autoscale_stack.sh

 「create_autoscale_stack.sh」は、BGD環境を構築するHeatを実行するシェルスクリプトです。

photo 「create_autoscale_stack.sh」の中身

 設定するパラメータは以下の通りです(表8)。自身の環境に合わせて値を修正してください。値はシングルクォーテーション(')で囲みます。

表8 「create_autoscale_stack.sh」のパラメータ
パラメータ名 設定内容
FIP_PRODUCTION 本番用のフローティングIPを指定する
FIP_STAGING 開発用のフローティングIPを指定する
EXT_ALLOCATIONPOOL_START externalネットワークレンジの最初のアドレスを指定する
EXT_ALLOCATIONPOOL_END externalネットワークレンジの最初のアドレスを指定する
EXT_NET_GW externalネットワークのゲートウェイを指定する
EXT_NET_CIDR externalネットワークのCIDRを指定する
IMAGE_NAME インスタンスのイメージを指定する
(あらかじめダウンロードして、Glanceに登録しておく)
FLAVOR インスタンスのフレーバーを指定する
(あらかじめ作成しておく)
KEY_NAME インスタンスのキーペアを指定する
(あらかじめ作成しておく)
※今回の自動設定では、SSHでの通信設定は行いません

 なお、このシェルスクリプトのセキュリティグループは「default」を使います。上記設定の他に、セキュリティグループ「default」へTCP 80番ポートを受信する設定も済ませておいてください。

 create_autoscale_stack.shでは、以下を実行します。

  • 「/etc/openstack-dashboard/bgd_settings」ファイルの設定
  • externalネットワークおよびルーターの構築:heatスタック名「BGD_net_external」
  • テナントネットワークの構築:heatスタック名「BGD_net_blue」(ブルー環境構築時)、heatスタック名「BGD_net_green」(グリーン環境構築時)
  • ロードバランサーおよびwebサーバの構築:heatスタック名「autoscale-web-blue」(ブルー環境構築時)、heatスタック名「autoscale-web-green」(グリーン環境構築時)

 なお、テナント内のインターナルネットワークとして、ブルー環境用ネットワークの「192.168.10.0/24」とグリーン環境用ネットワークの「192.168.20.0/24」が自動的に使用されます。

 シェルスクリプトは、「blue」か「green」の引数を与えて実行します。コマンドは以下の通りです。ただし、まだ設定する項目があるので、ここではまだ実行しないでください。

#./ create_autoscale_stack.sh blue
ブルー環境を構築するコマンド
#./ create_autoscale_stack.sh green
グリーン環境を構築するコマンド
  • delete_autoscale_stack.sh

 delete_autoscale_stack.shは、create_autoscale_stack.shで構築したBDG環境を削除するシェルスクリプトです。今回の構築検証作業を終え、BDG環境を削除するときに使用します。

  • autoscale-web.yaml

 autoscale-web.yamlは、LBaaS v2に対応したロードバランサーを構築するための設定ファイルです。YAML形式で記述されています。

 「resource:」セクションで、ロードバランサーのリソースを設定しています(図14)。

photo 図14 「autoscale-web.yaml」の中身(LBaaS v2の「lb」リソース部分)

 「lb」リソースで、type:に「OS::Neutron::LBaaS::LoadBalancer」と指定することで、ロードバランサーが作成されます。

 この他、「listener」リソースにはListenするポートやプロトコルの設定、「pool」リソースにはロードバランスするグループや方法の設定、「lb_floatingip」リソースにはロードバランサーに付与するフローティングIPが記述されています(図15)。

photo 図15 「autoscale-web.yaml」の中身(「listner」「pool」「lb_floatingip」リソースの部分)

 続いて、「web_server_group」リソースでは、ロードバランスするサーバの設定が記述されています(図16)。

photo 図16 「autoscale-web.yaml」の中身(「web_server_group」リソースの設定)

 web_server_groupリソースでは、type:に「OS::Heat::AutoScalingGroup」を指定してオートスケール設定のサーバを作成します。設定の詳細は「autoscale-web-lb-member.yaml」を参照するようになっています。

  • autoscale-web-lb-member.yaml

 「autoscale-web-lb-member.yaml」は、ロードバランス先のサーバを作成するための設定ファイルです(図17)。

photo 図17 「autoscale-web-lb-member.yaml」の中身

 サーバの作成においては、パラメータ「user_data:」の値を環境に合わせて修正しておく必要があります。設定するパラメータは以下の通りです(表9)。併せて、Proxyのない環境の場合は「export http_proxy」と「export https_proxy」の記述は不要なため、行頭への「# 」の追加でコメントアウトしておきます。

表9 「autoscale-web-lb-member.yaml」のuser_data:パラメータ設定項目
パラメータ名 役割
NAMESERVER DNSリゾルバを指定
PROXY proxyサーバを指定(※Proxyのない環境ならば指定不要です)
PORT proxyサーバのポートを指定(※Proxyのない環境ならば指定不要です)

 なお、構築するサーバをwebサーバとして機能させるために「httpd」が必要となりますが、今回の構築例で使用しているイメージにはhttpdがインストールされていません。そこで、このときにyumリポジトリからhttpdをインストールしておきます。パラメータ「user_data:」の中に「yum install –y httpd」と記述しておくと、サーバ起動時にyumリポジトリからhttpdをダウンロードし、構築するサーバにインストールされます。

 また、パラメータ「user_data:」の中では、Webサーバの動作確認ができるようにcgiの設定をしています。具体的には、「index.cgi」を稼働させて、Horizon上の「Webサーバのインスタンス名表示枠」の色をブルーかグリーンで表示させるように記述してあります。

 ここまでの設定が終われば、シェルスクリプトによる起動が可能となります。シェルスクリプト内でHeatコマンドを実行するので、まず、以下のコマンドで環境変数を読み込みます。

#source /root/keystone_admin
環境変数を読み込む

 起動コマンドは以下の通りです。

#./create_autoscale_stack.sh blue
ブルー環境を構築するコマンド
#./create_autoscale_stack.sh green
グリーン環境を構築するコマンド

 シェルスクリプトの実行により、以下の環境が作成されます。

  • Externalネットワークとルーター
  • テナントネットワーク「www-bule」と「www-green」
  • ロードバランサー(ブルー系、グリーン系それぞれ1つ)
  • インスタンス4つ(ブルー系、グリーン系それぞれ2つ)

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。