BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース FAI: Linuxのインストール、管理、カスタマイズを自動化する

FAI: Linuxのインストール、管理、カスタマイズを自動化する

原文(投稿日:2010/03/23)へのリンク

FAI (Fully Automatic Installation) は、Linuxシステムを手動でインストール、カスタマイズ、管理するという退屈な反復作業から逃れるための非対話型システムだ。最近では、数台の単一システムのセットアップから数千台ものシステムからなる大規模なインフラやクラスタのセットアップまで、chroot環境や仮想マシンおよび物理マシンを管理するのに使われている。

システム管理者はconfig spaceと呼ばれるものを使って、FAI内のハードディスクレイアウト、ファイルシステム、ソフトウェアパッケージ、キーボードレイアウト、タイムゾーン、ユーザアカウントなどを定義する。FAIのWebサイトには次のように書かれている。

FAIは大規模Linux無人インストールのためのツールです。1台以上の未使用PCを入手したら、電源を入れます。すると数分後には、システムがインストールされて、あなたのニーズに合うよう設定されます。インタラクションは必要はありません。

Debianインストーラのpreseedingが基本インストールプロセスだけを自動化するよう作られているのに対し、FAIはロールアウト、デプロイメント、プロビジョニングとともに構成管理(configuration management)まである程度世話をするよう作られている。

先週末、ドイツのChemnitz Linux Daysにおいて、InfoQはThomas Lange氏と会う機会を得た。Thomas Lange氏はFAIのプロジェクトリーダであり、ちょうどversion 3.3.4をリリースしたところだった。

FAIのプロジェクトリーダであるThomas Lange氏に、彼のITバックグラウンドについて聞いてみた。

私はボン大学でコンピュータサイエンスを学びました。以来18年以上、システム管理者として働いています。ちょうど10年くらい前に、16台のコンピュータからなるクラスタをセットアップする必要に迫られました。私は怠け者なので(私は自分のことを典型的なシステム管理者だと思っています)、インストール作業を手動でやりたくはありませんでした。その当時、私はSolarisのJumpstartについて知っていたので、Solarisシステムをデプロイするのにはそれを使っていました。そこで、Debianでも同じようなことができるようにしよう、と決めたのです。その成果が現在FAIと呼ばれるものになりました。私は怠けるためにかなりの時間をつぎ込みました。:) でも、そのおかげで、今やみなさんはシステムを「完全」に自動的にデプロイすることができます。ちょうど2009年末に、FAIは10歳の誕生日を迎えました。

FAIでいちばん重要な興味深い機能について尋ねると、Lange氏は次のように答えた。

FAIにはかなり柔軟性があります。システム管理者は自分がやりたいことを正確に実現することができます。「ツール」が最善であると想定していることに制限されることはありません。その代わりに、あなたは自分自身のスクリプトやフック、構成をカスタマイズすることで、ニーズに合わせたデプロイメントプロセスをカスタマイズ、拡張できます。これは初心者にとっては少々難しいのですが、経験豊富なFAIのシステム管理者にとってはスイス・アーミーナイフのように頼りになります。

例えば、setup-storageと呼ばれるFAIのパーティションツールは、柔軟性のあるコンポーネントです。あなたはパーティションサイズを正確に指定する必要はありません(もちろん、やりたければそうすることもできます)。その代わりに、例えば、rootfsにディスクの10%を使って、スワップに2-4GB、残りをデータパーティションに使うといった具合いにFAIに指示することができます。また、このツールはLVM(Logical Volume Management)やソフトウェアRAIDもきちんとサポートしています。

FAIを設計、実装するときに私にとって重要だったのは、設定ファイルのフォーマットを読みやすく書きやすくすることでした。私はふつうのシステム管理者はXMLを使いたくはないだろうと考えています。そのためFAIでは、お気に入りのバージョン管理システムに格納できて、手動でも読み書きしやすいように作られた、シンプルな設定ファイルを使っています。

もうひとつ重要な機能は、クラスベースのアプローチです。あなたはひとつのファイルですべてを設定する必要はありません。その代わりに、ハードウェアとソフトウェアの構成を抽象化するのです。システム全体で共通な部分は、いつも使うベースクラスに入れておきます。アーキテクチャや現在のハードウェア、ソフトウェア構成によって、必要に応じて要求したときだけ、特定の機能を有効にすることができます。もちろん、これはソフトウェアの選択にも当てはまります。ベースクラスでは、すべてのホストにインストールしたいコアソフトウェアパッケージがすべて選択されるようにし、デスクトップシステムにはサーバシステムとは異なる追加のソフトウェアパッケージが選択されるようにする、といったことが簡単にできます。

経験豊富な上級システム管理者が最初のクラス設計をするとよいでしょう。そして、まだ経験の浅いシステム管理者は、ハードウェアをセットアップして、新しいハードウェアを統合して...、といった実際のデプロイメント作業をやるのです。クラスベースのアプローチと相まって、こうした柔軟性のおかげで、FAIは企業レベルでも使えるものになっていると思っています。

FAIを使うための要件について、Lange氏は次のように説明した。

FAIをデプロイメントに使うには、DHCPサーバ、NFSサーバ、HTTPサーバ、TFTPサーバ、そしてもちろん、FAIソフトウェア自体が必要です。使い始めるにあたっては、http://www.informatik.uni-koeln.de/fai/guideにあるFAIガイドを読んでおくことを強くおすすめします。

FAIの今後のバージョンに関するロードマップについて、また、ユーザが将来どんなことを楽しめるのか、Lange氏に尋ねた。

今後のバージョンについてですが、Ubuntuに適したDebianパッケージにして、Ubuntuデスクトップのデプロイメントがもっとうまくやれるようにしたいです。FAIパッケージとは独立にsetup-storageが提供できるよう取り組んでいるところです。これによってsetup-storageはFAIの外部でも使えるようになります。また、Grub2を早くサポートしたいと考えています。

インタビューの最後に、InfoQの読者に伝えたいことについて、Thomas Lange氏は次のように語った。

私はFAIユーザからのレポートに目を向けたいと考えています。FAIのユーザはどうかhttp://www.informatik.uni-koeln.de/fai/reportsにあるFAIアンケートに記入してください。そうすれば、私たちはどんなユーザがいて、どんな機能を実際に使っているのか、そして、どんな問題があるのかについて知ることができます。FAIは使ってくれるユーザとそのフィードバックのおかげで、すぐれたデプロイメントソリューションに成長してきました。ですから、是非フィードバックをお願いします。あなたの考えていることを私たちに教えてください。

この記事に星をつける

おすすめ度
スタイル

BT