2016年6月26日日曜日

OpenStack/Heatによるオーケストレーション入門


このエントリーをはてなブックマークに追加


OpenStackユーザ会の第28回勉強会のネタです。


前回の完全版のネタになります。このネタは私が大学で担当している講義資料から抜粋しています(ほとんどそのまま

演習つきなので、興味があれば以下を見ながら試してみてください。
https://etherpad.openstack.org/p/r.16d9199da6f662084a2362e58d6d18e5


今回の勉強会の中で、実環境でHeatを使う際のいくつかの注意事項を述べたのでまとめておきます。

Heat「だけ」で全部やらない

これにつきます。
HeatはOpenStack上のリソースを配置、操作するだけならば他のツールに比べても優れています。記法はシンプルで操作方法もかなり単純です。しかし、OpenStackの外にあるものや、OpenStack上に作成されたインスタンス中を操作しようとすると途端に難易度が上がってきます(頑張ればできなくはない)

一昔前であれば、学習コスト等を謳い文句にして、1つのツールを徹底的に使いこなして細かな末端までカバーするのが良い、という宣伝がされていましたが、現在はこういうアプローチはあまりされません。
そのツールが得意なことだけをそのツールにやらせて、足りない部分はそこが得意な別のツールでカバーする、「ツールチェイン」のアプローチが一般的になってきています。

例えばOpenStack上のリソースを作成するのにはHeatを使い、作成されたインスタンスの設定はAnsibleで行う、といったようなやり方です。
Ansibleは汎用的な環境化で手順を自動化することが可能ですので、OpenStack上のリソースを作成して、そのリソースの起動を保証するといった事も出来なくはないのですが、やや複雑なプレイブックを書く必要が出てきます。
そこで、得意なリソースの作成と保証の部分をHeatにまかせて、Heatが作成したスタックの外部出力値を、Ansibleのダイナミックインベトリへ渡すといったやり方をすることで、結果として全体をシンプルにすることが可能になるのです。

ここではHeat + Ansibleの例をあげていますが、他の場合でも同様です。
皆様も自分の環境に合わせて、最適なツールチェーンを模索してみましょう。