Debianで作るプロジェクト管理環境
Debianを最小構成でインストール
それぞれ決まったところで、実際のサーバ構築に話題を移そう。
本連載では、x86アーキテクチャのサーバを信頼できるネットワーク環境に配置でき、かつHTTPもしくはFTPにてDebianのリポジトリにアクセスできる環境があると仮定して、サーバとしてDebianをインストールするときのポイントを紹介する。また、ハードウェアが用意できずとも、既存の環境に「間借り」することも可能であるため、その方法についても後述する。
なお、Debianインストールの詳しい手順は、Debianの公式サイトに記載されているマニュアルを見ていただいたほうが良い。ここでは、サーバとして構成するときのポイントを紹介する。
まず、インストールに使用するCDイメージは、netinstイメージを利用するのが良いだろう。
Debianにはそのほかのイメージとしてbusinesscardイメージや、ネットワークからのダウンロードが不要な全セットのCD/DVDイメージが用意されているが、いずれもサーバOSとしてインストールする場合はおすすめできない。これは、インストールに必要なファイルやアプリケーションをダウンロードにて取得するため時間がかかったり、大量のパッケージがインストールされていると、サーバOSとしては不要なパッケージの削除作業を行う必要があったりするからである。
netinstイメージで起動するとCUIのダイアログが表示される。最近の多くのLinuxディストリビューションはインストール時にGUIを採用していることが多いため、ちょっと面食らってしまうかもしれないが、十字キーとTABキー、そしてエンターキーで十分操作可能だ。
また、CUIであるがゆえに、ハードウェアによってはインストール時からシリアルコンソールが利用可能である。これは、モデムなどを経由してリモートインストールも可能であることを意味し、ハードウェアをデータセンターに配置している場合は、現地オペレータにCD-ROMをセットしてもらい電源ONしてもらうだけでインストール作業を開始できる。これはサーバ向けの特徴と言えよう。
そのほか、インストール時のポイントとしては「ソフトウェアの選択」で、何も指定しないことだろう。こうすることで、最小限のシステムを構築することができる。
以上、ここまでの作業は、ダウンロードの時間にもよるが、手慣れていれば30分前後、慣れていなくとも1時間でインストール可能だ。
インストール後の初期設定
インストール直後のプロセスを見ると、不要なサービスは一切動いておらず、サーバOSの初期状態としては非常に理想的な環境だ。しかし何も入っていないがゆえに、何も行うことができない。まずは、sshによるリモートログイン環境を整えて、Tracの環境構築に備えることにする。
その前に、OS自体のアップグレード確認作業を忘れてはならない。インストール直後のOSに対し、すでにセキュリティパッチが出ている可能性があるからだ。DebianはAPTによって新しいアプリケーションのインストールから、インストール済みアプリケーションのアップグレードまでの作業を簡単にできる。
# aptitude update
# aptitude upgrade
筆者の環境では、kernel(linux-imageパッケージ)のアップグレードが発生した。aptitude upgrade後に再起動し、最新のkernelで稼働するようにした。
なおroot権限が必要な作業はsudoを利用するのが常とう手段ではあるが、今回はコマンドラインを簡素化するため、すべてrootユーザで作業を行っている。
さて、次はリモートログイン環境である。インストール直後の状態では、常にサーバの前で作業をしなければならないため、sshによるリモートログインが可能なように構成する。これもAPTで簡単に構成可能だ。
# aptitude install openssh-server
これでsshによるリモートログインが可能になった。ただし、この時点ではrootユーザによるログインが許可された状態(PermitRootLogin yes)であるため、サーバが信頼できるネットワークに配置されているかを、再度確認しておく。
もし信頼できないネットワークに配置されていたのであれば、直ちにsshdを停止し、信頼できるネットワークへ再配置してからセットアップ作業を行うようにする。また、セットアップが完了したら、PermitRootLoginをnoにした上で、ログイン方法に公開鍵を利用するなどでセキュリティを向上させる作業を行っておきたい。
以上で、起動するだけのクリーンなDebian環境ができ上がった。クリーン環境の構築は、システム開発において比較的頻繁に行われる作業であるため、この手法を知っておくだけでもシステム開発の効率を上げられるのではないだろうか。
では、このクリーン環境に対し、Tracの環境構築を行っていく。