IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウド時代のオープンソース実践活用

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第9回 複数ツールの連携でオープンソース流の自動化を (中井悦司) 2012年12月

はじめに

 前回は番外編となりましたが、ここ数回は、クラウドにおける自動化を考えてきました。ちょうど先日(11/19)、「クラウドが実現するソフト開発・運用の変革と自動化」というセミナーがあり、本コラムを執筆しながら考えてきたことをまとめて発表させていただきました(*1)。
「一般の企業システムに役立つ自動化って何?」という疑問がこのセミナーのテーマです。まだ明確な答えのない疑問ですが、同様の問題意識を持つ方も多いようで、参加者の方とさまざまな意見交換ができました。私自身にとっても有益なセミナーとなりました。(参加いただいたみなさん、ありがとうございます!)
 それでは、いよいよ、自動化ツール「Aeolus(アイオロス)」の最後の話題をお届けします。前々回において、「自動化の3方式」と、その中でも特に、Aeolusが採用する「JEOS(ジュース)方式」を紹介しました。今回は、システムテンプレートから作成したJEOSイメージをもとに、アプリケーション実行環境を自動構築する仕組みを解説します。

Aeolusのアプリケーション・ブループリント

 Aeolusによる自動化の全体象は、図1のようになります。

fig01

図1 Aeolusによる自動化の全体像

 マシンイメージ(JEOSイメージ)をシステムテンプレートから自動作成する部分は、前々回に説明しました。JEOS(Just Enough Operating System)とは、アプリケーションをインストールする土台となる、OS環境のことでした。このJEOSイメージから、「どのサイズの仮想マシンを何台起動して、それぞれにどのようなアプリケーションを導入するのか」を記述した定義ファイルが「アプリケーション・ブループリント」です。
 アプリケーション・ブループリントをもとに作成した仮想マシンでは、初回のOS起動時に「Audrey Agent」と呼ばれるツールが実行されます。これが、実際のアプリケーション導入・設定作業を行います。では、具体的にどのような作業を行うのでしょうか?
 実は、現在のバージョンのAudrey Agentは、それほど複雑な処理できません。ConfigServerと呼ばれるサーバを経由して、同時に起動した他の仮想マシンの構成情報(ホスト名やIPアドレスなど)を取得した後に、アプリケーション・ブループリント内で指定されたシェルスクリプトを実行するだけです(*2)。
「結局、シェルスクリプトでアプリケーション導入手順を作りこまないといけないの?」--- いえいえ、必ずしもそういうわけではありません。

Aeolusと既存ツールの連携

 前々回に紹介した「自動インストール方式」の中で、既存の自動化ツールが出てきましたが、その中に「Puppet」という名前がありました。これは、Puppet Labs社が開発するオープンソースの構成管理ツールです。「マニフェスト」と呼ばれる定義ファイルに「あるべき状態」を記載しておくと、それに合わせて、アプリケーションの導入・設定処理を自動で行います。
 そこで、例えば、アプリケーション・ブループリントで実行するシェルスクリプトからPuppetを起動すれば、実際の導入・設定処理はPuppetが行なってくれます。アプリケーションの導入手順に合わせた、複雑なシェルスクリプトを作成する必要はありません。実際に、AeolusとPuppetを組み合わせて利用する方法を筆者のBlog記事で紹介しています。
 少し余談になりますが、Puppetを利用した環境構築の自動化は、私のオフィスにある個人用サーバでも活躍しています。このサーバでは、Linux KVMによる多数の仮想マシンを立ちあげて、ソフトウェアの機能確認やデモ環境の構築を行なっています。さまざまな構成の環境が必要になるので、仮想マシン構築の自動化を進めています。AeolusとPuppetの組み合わせは、この時に作った仕組みを応用したものになります。

Aeolusの課題

 とはいえ、Aeolusの機能には、まだ不十分な点も残ります。ConfigServerを経由して他の仮想マシンの構成情報を取得することはできますが、他の仮想マシンの設定処理の進捗状況をリアルタイムに把握することはできません。そのため、「仮想マシンAでDBサーバが起動した後に、仮想マシンBのアプリケーションからDBに接続する」など、複数の仮想マシンにまたがったワークフロー処理ができません。
 その他には、仮想ネットワークの構成、あるいは、仮想マシンに対する仮想ディスクの追加処理なども未対応です。これらは、仮想化ソフトウェアやクラウドによって利用できる機能が異なるため、複数環境での利用をめざしたAeolusでは、逆に対応が難しい点になります。
 つまり、仮想マシン内部の設定を自動化するだけではなく、他の仮想マシンやクラウドインフラと連携した自動化(いわゆる「オーケストレーション処理」)が今後の課題となります。先のPuppetの例のように、複数ツールと連携できることがオープンソースの強みです。これらの課題についても、Aeolus単体で解決するのではなく、さまざまなツールとの連携での対応が進むものと予想しています。

次回予告

 最近、巷で話題のOpenStackについて調べる機会がありました。Eucalyptusなど、類似のクラウド基盤ソフトウェアでも同じなのですが、その中では、Linuxの基本機能がさまざまに組み合わされています。
 次回からは、OpenStackの中でも特に、仮想ネットワーク機能を提供する「Quantum」について紹介していきたいと思います。

参考資料

*1クラウドが実現するソフト開発・運用の変革と自動化
 本セミナーでの発表資料です。

*2Aeolus(アイオロス)でRHELonEC2を利用する(その2)
「/etc/motd」に指定の文字列を書き込むだけの簡単なアプリケーション・ブループリントの例が紹介されています。

 

++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
 CTC教育サービス Linuxのページ
 http://www.school.ctc-g.co.jp/linux/
 

Linux研修トレーニングならCTC教育サービス


 

筆者書籍紹介

Software Design plusシリーズ
「独習Linux専科」サーバ構築/運用/管理
  ――あなたに伝えたい技と知恵と鉄則

本物の基礎を学ぶ!新定番のLinux独習書

中井悦司 著
B5変形判/384ページ
定価3,129円(本体2,980円)
ISBN 978-4-7741-5937-9
詳しくはこちら(出版社WEBサイト)
「独習Linux専科」サーバ構築/運用/管理

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes