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