ステップ2で展開した「openstack_heat_bgd-master/」ディレクトリ内にあるファイルの内容と役割を確認しましょう。以下のファイルが格納されています(表7)。
ファイル名 | 内容 |
---|---|
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/
「create_autoscale_stack.sh」は、BGD環境を構築するHeatを実行するシェルスクリプトです。
設定するパラメータは以下の通りです(表8)。自身の環境に合わせて値を修正してください。値はシングルクォーテーション(')で囲みます。
パラメータ名 | 設定内容 |
---|---|
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では、以下を実行します。
なお、テナント内のインターナルネットワークとして、ブルー環境用ネットワークの「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は、create_autoscale_stack.shで構築したBDG環境を削除するシェルスクリプトです。今回の構築検証作業を終え、BDG環境を削除するときに使用します。
autoscale-web.yamlは、LBaaS v2に対応したロードバランサーを構築するための設定ファイルです。YAML形式で記述されています。
「resource:」セクションで、ロードバランサーのリソースを設定しています(図14)。
「lb」リソースで、type:に「OS::Neutron::LBaaS::LoadBalancer」と指定することで、ロードバランサーが作成されます。
この他、「listener」リソースにはListenするポートやプロトコルの設定、「pool」リソースにはロードバランスするグループや方法の設定、「lb_floatingip」リソースにはロードバランサーに付与するフローティングIPが記述されています(図15)。
続いて、「web_server_group」リソースでは、ロードバランスするサーバの設定が記述されています(図16)。
web_server_groupリソースでは、type:に「OS::Heat::AutoScalingGroup」を指定してオートスケール設定のサーバを作成します。設定の詳細は「autoscale-web-lb-member.yaml」を参照するようになっています。
「autoscale-web-lb-member.yaml」は、ロードバランス先のサーバを作成するための設定ファイルです(図17)。
サーバの作成においては、パラメータ「user_data:」の値を環境に合わせて修正しておく必要があります。設定するパラメータは以下の通りです(表9)。併せて、Proxyのない環境の場合は「export http_proxy」と「export https_proxy」の記述は不要なため、行頭への「# 」の追加でコメントアウトしておきます。
パラメータ名 | 役割 |
---|---|
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
シェルスクリプトの実行により、以下の環境が作成されます。
Copyright © ITmedia, Inc. All Rights Reserved.