スタックの作成
いよいよHeatを使ってスタックを作成します。メニューから[プロジェクト]-[オーケストレーション]-[スタック]に移動し、「スタックの起動」を選択します。テンプレートの選択画面とスタックの起動画面が表示されるので、以下のようにパラメータを入力します。
テンプレートの選択
- テンプレートURL:https://raw.githubusercontent.com/tech-sketch/heat_sample_template/master/WordPress_2_instances.yaml
スタックの起動
- スタック名:WordPress(任意)
- ユーザー "admin" のパスワード:adminユーザのパスワード
-
public_net:作成した外部ネットワークのID
- ネットワークのIDは[プロジェクト]-[ネットワーク]-[ネットワーク]に移動し、作成したネットワークを選択すると確認することができます。
- key_name:登録したキーペアの名前
その他のパラメータは基本的にデフォルトのままで構いません。
スタックの起動画面で「起動」を選択すると、スタックの作成が開始されます。スタックの作成状況は、作成したスタックの詳細画面や[プロジェクト]-[ネットワーク]-[ネットワークトポロジー]で確認できます。今回の環境では5分程で作成が完了しました。
スタックの作成完了後、ネットワークトポロジーを確認すると、スタック構成図のとおりにシステムが構築されていることを確認できます。
コマンドラインからスタックを作成する場合は、以下を実行します。
(テンプレートのURLを指定する場合) source keystonerc_admin heat stack-create wordpress --template-url https://raw.githubusercontent.com/tech-sketch/heat_sample_template/master/WordPress_2_instances.yaml --parameters "key_name=user-key;public_net=<network_id>" (テンプレートをダウンロードして利用する場合) wget https://raw.githubusercontent.com/tech-sketch/heat_sample_template/master/WordPress_2_instances.yaml heat stack-create wordpress --template-file WordPress_2_instances.yaml --parameters "key_name=user-key;public_net=<network_id>"
WordPressへのアクセス
これでOpenStack上にWordPressを自動で構築することができました。構築したWordPressにアクセスして動作を確認してみます。
[プロジェクト]-[オーケストレーション]-[スタック]に移動し、作成したスタックを選択するとスタックのトポロジや概要を確認することができます。概要タブを選択し、出力に記載されているURLをクリックすると、構築したWordPressにアクセスすることができます。サイトのタイトルやユーザ名などを適宜設定しインストールすると、WordPressにログインすることができます。
スタックの削除
最後に、作成したスタックを削除してみます。[プロジェクト]-[オーケストレーション]-[スタック]に移動し「スタックの削除」を選択すると、スタックを構成するインスタンスやネットワークをまとめて削除することができます。テンプレートにリソースの依存関係が設定されていないと、インスタンスが残っているネットワークを削除しようとするなど、エラーが発生する場合があります。その場合は、エラーの原因となっているリソースを削除した後、再度スタックの削除を実行します。テンプレートに定義していないインスタンスやFloating IPをネットワークに関連付けるなどした場合も、先にそれらを削除しておく必要があります。
コマンドラインからスタックを削除する場合は、以下を実行します。
source keystonerc_admin heat stack-delete wordpress
まとめ
今回は、PackStackを使ってOpenStack環境を構築し、Heatを使ってOpenStack上にWordPressを自動で立ち上げました。今回作成したスタックはシンプルな構成でしたが、リソースの自動構築やWeb/APサーバとDBサーバの連携など、クラウドオーケストレーションのメリットを感じることができたのではないでしょうか。
より複雑なスタックを構築するためにはリソース作成の順序制御やChefなどを利用した構築後の自動設定が必要ですが、HeatやAWS CloudFomationだけでなくChefやPuppetのサンプルテンプレートも多数公開されているのでうまく利用してみてください。
OpenStackは、インストールツールや豊富なドキュメントによって、比較的簡単に使うことができるようになってきました。今後、より効率的に、効果的にOpenStackを活用していくために、クラウドオーケストレーションの活用を検討してみてはいかがでしょうか。
次回は、WebRTC(PeerJS)を用いたブラウザ上で動作する遠隔作業支援システムの構築方法について紹介します。



