FogとChefを使ったアプリケーションデプロイ

Presenter Notes

概要

  • ここではFogを用いて仮想マシンを複数台作成し、役割に応じてChefでデプロイを行います。
  • 作成されるサーバは以下の通りです。studentXXの部分には、操作端末の番号が割り当てられます。
    • studentXXlb1 : ロードバランササーバー1
    • studentXXweb1 : フロントWebサーバー1
    • studentXXweb2 : フロントWebサーバー2
    • studentXXapp1 : アプリサーバー
    • studentXXdb1 : データベースサーバー

Presenter Notes

操作環境の準備

  • 下記のコマンドで、Fogが導入されたサーバーを用意します。
    • コマンドの実行が完了するまで数分かかります。
    • コマンドが終了すると、Fogサーバーへのログインコマンドが表示されます。

コマンド実行の様子:

---------ここから---------
$ /opt/support/t4-c2/01_init.sh
(中略)
####init.sh finished. Please login to fog-server by following command
ssh -i ~/default.pem -oStrictHostKeyChecking=no fog@IPアドレス
---------ここまで---------

Presenter Notes

Fogサーバーへのログイン

  • 最後に表示されたコマンドで、Fogサーバーにログインします。

コマンド実行:

---------ここから---------
$ ssh -i ~/default.pem -oStrictHostKeyChecking=no fog@IPアドレス
---------ここまで---------

Presenter Notes

仮想マシン作成とアプリデプロイ(1)

  • Fogサーバー上で下記のスクリプトを実行すると、以下のような流れで処理が進みます。
    • サーバ設定(yaml形式)を作成します。$HOMEにyamlが残るので、後で内容確認できます。
    • yamlに沿って仮想マシンを作成します。1台完了するとCreate server studentXXdb1と表示されます。

コマンド実行:

---------ここから---------
$ ~/deploy_app.sh
Created server student18db1
(中略)
---------ここまで---------

Presenter Notes

仮想マシン作成とアプリデプロイ(2)

  • 続き
    • 作成したサーバーとicmpでの疎通ができるまで一定間隔でポーリングを繰り返します。疎通が取れると、I found icmp session to student18db1と表示され先に進みます。

コマンド実行:

---------ここから---------
Created server student18db1
(中略)
waiting icmp session to student18db1
I found icmp session to student18db1
---------ここまで---------

Presenter Notes

仮想マシン作成とアプリデプロイ(3)

  • 続き
    • 全サーバと疎通確認後、Chefサーバにcookbookとroleがアップロードされ、デプロイが始まります。
    • 一デプロイが完了ごとに、ログが表示されます。全デプロイが完了で処理は終了です。

コマンド実行:

---------ここから---------
cookbooks uploaded.
roles uploaded.
(中略)
deploy finished => student18db1
check logfile => more /tmp/student18db1_bootstrap.log
---------ここまで---------

Presenter Notes

仮想マシン作成とアプリデプロイ(4)

  • 続き
    • 最後にアプリURL(studentXXlb1サーバ)が表示されます。ローカルIPアドレスは、nova listコマンドで確認ください。
    • 今回CUIのため、y3mでアプリにリクエストしてください。問題なければアプリが動作するはずです。

コマンド実行:

---------ここから---------
Deploy finished. TRY w3m http://'local-ip-address-of-student18lb1' from this server
---------ここまで---------

Presenter Notes

構築した環境の全体像

  • 今回、構築した環境は下図のようになります。(Openstack側)
    • 「OpenStackクラウドインテグレーション」より引用
./_assets/t4-c2/01_environment.png

Presenter Notes

環境の削除

  • デモが終了したら、起動した仮想マシンやネットワーク環境をすべて削除します。
    • 下記のように、Fogサーバからログアウトして、作業PCに戻ってから環境を削除するスクリプトを実行します。

コマンド実行:

---------ここから---------
$ exit
$ /opt/support/t4-c2/99_cleanup.sh
---------ここまで---------

Presenter Notes

まとめ

  • 本スクリプトは、ソースは全く同じまま、yamlのデータを変更することでAWSやOpenstackといったパブリッククラウドの違いを意識せずに同じアプリのデプロイが可能です。ここでは、Openstackのデモを行いましたが、本著では、 AWSでの手順も紹介していますので是非試してみてください。
  • 本著では、Fogを利用したスクリプトに関する詳細な解説があります。詳しい処理内容にご興味がありましたら、本著をご確認ください。 もしくは、 github上からソースコードを取得することも可能です。

Presenter Notes