5分で構築するものぐさ仮想サーバ(其の3) ソフトウェア編

こんにちわ。arashoです。だいぶ間が開いてしまいました。ごめんなさい。あっという間に4月になり新卒を迎え社内が賑やかになってます。

前回に引き続きものぐさ仮想サーバ、ソフトウェア編です。前回よりだいぶ時間が経って、大手ベンダーからも仮想化を打ち出した製品が出てますがベンダー製品ってとってもお高いですね。製品によっては仮想化しない方が安いんじゃないかというものもあったり・・・。

今回、ものぐさサーバの構築では、ソフトウェアに関してはオープンソースで公開されているものを使用して構築しました。また、それほど複雑な仕組みは取り入れていないので、定番の自動化手法+Xenといった形で構築しています。

実際にサーバを構築するに当たって、サーバ構築担当者のすることは

  • webアプリから必要な情報を入力する

だけで、構築完了後は利用者にメールが飛ぶようになっていますので、利用者もすぐ使えるようになっています。

実際に仮想サーバを構築している様子を見てもらった方がわかりやすいと思いますので、スクリーンキャストを用意しました。さすがに操作をそのまま記録して流すと時間がかかってしまうので、ばっさり45秒に短縮してみました。

では、自動化の中では何をやっているかというと以下のような事を行っています。スクリーンキャストを見た方はだいたいわかってしまっているかもしれませんね。

  1. webアプリケーションにアクセスし、IPアドレスやホスト名、初期ユーザなどの情報を入力する。
  2. 入力が完了すると、構築が開始される。
  3. ストレージに仮想ディスクを作成しする。
  4. カーネルパラメータにキックスタートファイルを指定して仮想サーバを起動する
  5. 動的に生成されたキックスタートファイルに従ってインストールする
  6. インストールと並行して仮想サーバのインストール以外の自動化されたタスクを処理する
  7. 全て完了したら利用者にメールを送信する

たったこれだけなんです。非常に簡単ですね。でも、このインストールの仕組みに、以下のような作業を自動化するようキックスタートファイルやwebアプリケーションを実装して管理者も利用者も楽になれるようにしています。こっちのほうが重要かもしれません。

  • 認証は基本的にはLDAPを使用し、ldap関連の設定をインストール直後に行う
  • SSHの公開鍵はLDAPに登録し、各サーバに公開鍵を設置しなくてもログインできるように設定(パスワードログインはデフォルトで禁止に変更しています)
  • yumリポジトリをLANの中に用意し、インストール時やパッケージのアップデート、独自のリポジトリを利用できるようにyumの設定を行う
  • インストール時に最新版のパッケージへとyum updateを行う
  • sudoを使用できるようにsudoersファイルを修正する(認証はLDAPで)
  • サーバの監視ができるようサーバの設定および監視サーバへの登録を行う
  • デフォルトである程度セキュアになるようiptablesの設定を行う
  • 不要なサービスの停止と必要なサービスの自動起動設定を行う
  • 仮想サーバを起動する時の設定ファイルを作成する
  • 仮想サーバをLDAPに登録する
  • DNSにホスト名を登録
  • その他細かい設定ファイルをpuppetで取得して設置、など

この部分を厚くすることがものぐさできる肝ですね。このあたりの作業を手作業でやっているとすぐに半日、1日過ぎてしまいますが自動化できることは自動化した方が、手作業によるミスも少なくなると思いますのでお勧めです。

使用しているソフトウェアは

  • CentOS 5
  • Xen
  • Apache
  • MySQL
  • PHP
  • Fedora Directory Server
  • zabbix
  • puppet
  • djbdns

といった類の世に出回っているソフトウェアを使用しています。それぞれのソフトに関しては次回以降小ネタとして書きたいと思います。

コメント / トラックバックはありません

コメントする