管理にグラフィカルインターフェースを使うことはさまざまな状況で興味深いです。管理者はすべてのサービスのすべての設定の詳細を知る必要はありませんし、常に問題に関連する文書を探し出すための時間があるというわけでもありません。管理用のグラフィカルインターフェースを使うと、新しいサービスを素早く配置できるようになります。さらに、設定の難しいサービスのセットアップを単純に行うことが可能です。
グラフィカルインターフェースは補助でしかなく、インターフェース自身は目的ではありません。どんな場合でも管理者は、さまざまな潜在的問題を理解して対処するために、サービスの挙動に精通しなければいけません。
どんなインターフェースも完璧ではありませんから、さまざまなインターフェースを試したくなるかもしれません。これは可能な限り避けるべきです。なぜなら、ツールが違えばそのやり方に互換性がないこともあるからです。ツールが、すべての対象をとても柔軟性の高い方法で取り扱い、基準としてその設定ファイルを採用しようとしていたとしても、ツールは外部からの変更を必ず統合できるわけではありません。
9.4.1. ウェブインターフェースを使った管理、webmin
webmin
が最も成功した管理インターフェースの 1 つであることは間違いないでしょう。webmin
はモジュールシステムで、ウェブブラウザから管理され、幅広い領域とツールをカバーしています。さらに、webmin
は国際化されており、多くの言語で利用できます。
残念なことに、Debian はもはや webmin
を配布していません。webmin
の Debian メンテナ — Jaldhar H. Vyas さん — は自分の作ったこのパッケージを削除しました。なぜなら、彼にはもはや合格基準に達するだけの品質でメンテナンス作業を行うのに必要な時間がなかったからです。公式にパッケージを引き継ぐ人がいなかったため、Jessie には webmin
パッケージがありません。
しかしながら、非公式パッケージが webmin.com
ウェブサイトから配布されています。元の Debian パッケージと異なり、このパッケージは柔軟性に欠けています。さらに対応するサービスがマシンにインストールされているか否かに関わらず、すべての設定モジュールがインストールされ、デフォルトで有効化されます。
Webmin はウェブインターフェースを通じて使われますが、Apache をインストールする必要はありません。元から Webmin には統合された小さなウェブサーバが含まれています。このサーバはデフォルトでポート 10000 番をリッスンし、安全な HTTP 接続を受け入れます。
導入されたモジュールは多種多様なサービスをカバーしています。たとえば以下はそのリストです。
すべての基本的サービス。このモジュールはユーザとグループの作成、crontab
ファイルの管理、init スクリプト、ログの閲覧などを担当します。
bind。このモジュールは DNS サーバの設定 (ネームサービス) を担当します。
postfix。このモジュールは SMTP サーバの設定 (電子メール) を担当します。
inetd。このモジュールは inetd
スーパーサーバの設定を担当します。
quota。このモジュールはユーザクォータの管理を担当します。
dhcpd。このモジュールは DHCP サーバの設定を担当します。
proftpd。このモジュールは FTP サーバの設定を担当します。
samba。このモジュールは Samba ファイルサーバの設定を担当します。
ソフトウェア。このモジュールは Debian パッケージを使ったソフトウェアのインストールと削除、システム更新を担当します。
ウェブブラウザで https://localhost:10000
にアクセスすれば管理インターフェースを使えます。注意してください! すべてのモジュールがすぐに使えるわけではありません。対応する設定ファイルと一部の実行ファイル (プログラム) の場所を指定して、モジュールを設定しなければいけない場合もあります。要求されたモジュールの有効化に失敗した場合、Webmin システムから丁寧な指示をもらうでしょう。
多くのパッケージが、インストール中 Debconf ツールを使ってわずかな質問をした後に、自動的に設定されるようになっています。そのようなパッケージは dpkg-reconfigure package
を実行すれば再設定できます。
ほとんどの場合、これらの設定はとても簡素です。従って、設定ファイル中のわずかな重要変数だけが変更されます。これらの重要変数は多くの場合 2 つの「境界」線で挟まれています。そうすれば、パッケージを再設定しても影響を受けるのは境界線で挟まれた範囲だけに限定されるからです。「境界」線で挟まれていない場合、スクリプトが手作業で設定ファイルが変更されたことを検出したら、人間による設定変更を上書きしないよう、再設定しても何も変更されません (なぜなら、スクリプトは自分の修正が既存の設定を破壊しないことを保証できないからです)。