本連載では、「OpenStackを基盤としたブルーグリーンデプロイメント」を実現する“現場目線”のノウハウを解説していきます。今回は、実際に「ブルーグリーンデプロイメント環境」の構築手順を解説します(オリジナルの構築用ファイルをGitHubで公開)。
前回は、OpenStackを基板とするブルーグリーンデプロイメント(以下、BDG)の効果と、導入における課題を考察しました。
今回から2回に渡り、OpenStack上にブルーグリーンデプロイメント環境を構築する具体的な手順を解説していきます。
本稿のGitHubへのリンクは、メンテナンス終了によるサンプルコードの削除に伴い削除させていただきましたが、ご了承ください。
本稿ではOpenStackのディストリビューションとして、RDO(*) All-in-Oneを用います(OpenStackのバージョンは「Newton」です)。また、Linuxディストリビューションは「CentOS 7.3」を使用します。
*RDO:Red Hat Enterprise Linux、CentOS、FedoraでOpenStackを構築する人が集うコミュニティー
構築するBDG環境は以下の通りです(図1)。ロードバランサーのフローティングIPを付け替えることで、ブルー系とグリーン系のネットワークを切り替える構成となります。
評価用サーバを用意し、RDO All-in-One環境を構築します。
OSのインストールとRDO All-in-Oneの設定に関しては、RDOによるクイックスタートガイドを参考に、
までを済ませておいてください。
続いて、今回のBDG環境の構築のために、インストールするOpenstackコンポーネントを制御する設定ファイル「answer-file」を修正します(クイックスタートガイドのStep 3そのままの手順では、デフォルト設定のanswer-fileが使用されてしまうので注意してください)。
具体的には、新たな「answer-file」を作成し、設定値を変更します。手順は以下の通りです。
#packstack --gen-answer-file=answer-file.txt
続いて、以下の内容を修正します。
CONFIG_LBAAS_INSTALL = y (←デフォルト値はn) CONFIG_HEAT_INSTALL = y (←デフォルト値はn) CONFIG_PROVISION_DEMO = n (←デフォルト値はy) CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat (←デフォルト値はvxlanのみ)
修正完了後、Packstackコマンドを実行します。上記で修正したBDG用のOpenStack環境が構築されます。
#packstack --answer-file=answer-file.txt
Packstack実行時に「mariadb-libsのコンフリクトメッセージ」が出力され、エラー終了してしまう場合は、いったんmariadb-libをアンインストールしてから再実行してください。
#yum remove -y mariadb-libs
今回の検証構築では、Neutronのロードバランサープラグインである「LBaaS(Load Balancing as a Service) v2」を使用します。現行バージョンのNewtonでは、RDO All-in-Oneをインストールすれば、LBaaS v2が標準で指定されます。しかし、LBaaS v2用のHorizonメニュー画面まではインストールされていません。以下のコマンドでそのファイル群をインストールしておきます。
#yum install -y openstack-neutron-lbaas-ui.noarch openstack-neutron-lbaas-ui-doc.noarch
続いて「/usr/share/openstack-dashboard/openstack-dashboard/local/enabled/_1480_project_loadbalancersv2_panel.py」の最終行へ、以下の項目を追加します。
DISABLED = True
同じく、「/etc/openstack-dashboad/local_settings」のenable_lbの設定を「True」に修正します。
‘enable_lb’: True, (←修正前の値はFalse)
Webサーバを再起動します。
#systemctl restart httpd
作業完了後、OpenStackのダッシュボード「Horizon」から、「プロジェクト」→「ネットワーク」→「ロードバランサー」の項目を開き、LBaaS v2の設定メニューが表示されることを確認します(図2)。
LBaaS v2のGUIツールは、アクセス先URL文字列の最後が「ngloadbalancersv2」となります。ここではこのGUIツールでの作業はありません。ロードバランサーはこの後のステップで作成しますが、この時の確認用にこのGUIツールを活用します。
Copyright © ITmedia, Inc. All Rights Reserved.