Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

新春特別企画・2008年を展望する!

2008年のオープンソースによるシステム管理

2007年を振り返って

私にとっての2007年最大のトピックは、やはりPuppetです。2007年からpaperboy&co.の技術全般を見る立場となり、まずはシステム構築の効率化を目指して、そのためのツールを探していたところ、巡り会ったのがPuppetでした。

私がPuppetを知った当時は日本語でのまとまった情報がほとんどなかったのですが、日本語 Wikiの立ち上げや、ここgihyo.jpでの連載Software Design誌2007年12月号での特集など、日本語の情報も充実してきており、Puppet Dojoと題したセミナーが実施されるなど、日本の技術者の間でPuppetの認知度がかなり向上した1年だったのではないでしょうか。

2008年のオープンソースによるシステム管理

2008年の私的注目ツール

Puppetは、マシンをラッキングし、OSインストール/ネットワーク接続した後のシステム管理を自動化しますが、依然としてOSインストールやネットワーク接続設定は手動で行うか、別のソリューションを利用する必要があります。

また、Puppet自体の運用・管理をどのように行うのか、という点も重要となってきます。

そこで2008年には、Puppet単体ではカバーしきれない領域を補う、以下のツールに注目し、導入を前提とした検証を行っていきたいと考えています。

Cobbler

PXEブートを利用して自動インストールを行うためには、dhcpd, tftpd, httpd等のインストールや設定が必要となりますが、これらを全部まとめて簡単に設定・管理するためのツールがRed Hat Emerging Technologies GroupのプロジェクトのひとつであるCobblerです。これにより、Puppetの対象範囲外であるOSの自動インストールをカバーすることができます。

Cobblerに関しては、インストールや基本的な設定に関する情報やオフィシャルドキュメントの日本語訳サイトなど、日本語の情報も充実しています。

Stateless Linux

Stateless Linuxは中央で一元管理されたOSのルートイメージを用いてマシンを動作させるための仕組みで、ITproに詳細な解説記事が載っています。

その名の通り「ステートレス」であるため、ルートイメージはリードオンリーでマウントされ、個別マシンの状態が保持されませんが、SSHキーなど、運用上個別マシンのステートを保持する必要がある部分では、Puppetを利用した管理が行われています。

PRM

PRM(Puppet Recipe Manager)はPuppetのマニフェストレシピを中央のリポジトリで共有し、自サイトへのダウンロードやアップデート、レシピファイルの管理を行うためのツールです。yumやaptといったパッケージ管理システムのPuppetマニフェスト版、と捉えることができます。

これにより、他の誰かが作成したマニフェストレシピを簡単に再利用できるようになります。

Cft

Cft(⁠⁠シフト」と読みます)はシステムへの変更をPuppetマニフェスト形式で記録するためのツールです。CftウェブサイトのEXAMPLEをご覧頂ければ、どんなツールか感触はつかめると思います。

これにより、Puppetマニフェストの生成が楽にできるようになります。

静的なシステム管理と動的なシステム管理

Puppetと上で挙げたツールを組み合わせることにより、マシンをラッキングし、ネットワークケーブルを接続して電源を入れるだけで、自動的にシステムをあるべき状態に維持することができるようになりますが、こういったシステム管理は、システムを一定の状態に保つという意味で「静的なシステム管理」と呼べるのではないでしょうか。

ところが現実には、負荷に応じて一時的に特定の接続元からの通信を制限したり、メンテナンスのために一時的に表示するウェブコンテンツを変えたり、といった、⁠動的なシステム管理」が必要となる場面が出てきます。

こういった目的には、上で挙げたようなツールはマッチしないため、別なツールが必要となってきます。

現在私が動的なシステム管理を行うためのツールとして注目しているのが、Funcです。Funcの特徴としては、以下の点が挙げられます。

  • 複数のサーバに対して、何らかの処理を一括でまとめて実行して結果が取得できる(たとえば、yum でパッケージをインストール)
  • 「何らかの処理」の部分は、モジュールで拡張できる
  • 「何らかの処理」はコマンドラインから実行して単に結果を表示、ということもできるし、Python API でプログラマブルに処理することもできる
  • クライアント/サーバアーキテクチャ

もう少し詳細な情報を私のTrac Wikiに簡単にまとめていますので、ご参照ください。

というわけで2008年は、⁠静的なシステム管理」「動的なシステム管理」を、いかに楽に、シンプルに、柔軟に、そして低コストで行うか、を追求していきたいと思います。

おすすめ記事