(open)SUSE には YaST という強力な管理ツールが備わっているのであまり必要性は感じないかもしれませんが、いろいろなディストリビューションで使える Webmin という管理ツールがあります。私の場合、UNIX に関する知識を持っていない者に管理業務の一部を委任したいときなど(例えば、単純に「再起動してね」なんてことを頼むような場合)、Webmin を仕込んでおくと説明が簡単になるので、結構重宝してたりします。また、Webmin のユーザ管理用モジュールといえる Usermin も、例えば登録した Samba ユーザに「初期パスワードを自分固有のパスワードに替えてね」なんてお願いしたいときなど、このインターフェイスを通じてやってもらうと簡単だったりします。

さて、メイン機を openSUSE 11.1 にアップグレードしたのに伴って、また例によってこの Webmin/Usermin を導入しようとしたところ、11.0 まででは起こっていなかった問題が発生しましたので、覚書をここに残しておきます。

1. Webmin/Usermin のインストール

Webin のサイトより、Webmin/Usermin の RPM パッケージ(2008年12月31日時点での最新版は webmin-1.441-1.noarch.rpm、usermin-1.370-1.noarch.rpm となります)をダウンロードし、それぞれ普通にインストールします。

# rpm -Uvh webmin-1.441-1.noarch.rpm

# rpm -Uvh usermin-1.370-1.noarch.rpm

2. システム起動時に自動実行するするように設定

chkconfig コマンドを使って、それぞれシステム起動時に開始するよう設定します。

# chkconfig webmin on

# chkconfig usermin on

なお、サービスを手動で開始/停止するときは、

# /etc/init.d/webmin {start/stop}

…のようにします。(# rcwebmin {start/stop} では開始/停止できません)

3. Firewall のポートを開く

YaST -> セキュリティとユーザ -> ファイアウォール と展開し、開いた[ファイアウォールの設定]の左ペインで[許可するサービス]を選択して、[詳細]を選択します。ここの TCP ポートのところに [10000 20000]と、スペースで区切って Webmin/Usermin が使うポートを記入し、設定します。

4. perl-Authen-PAM の追加インストール

さて、11.0 までだとここまでの作業で Webmin が使えるようになっていたのですが、今回はブラウザで https://IP_ADDRESS_OF_SERVER:10000/ を開こうとしてもエラーになってしまいます。Webmin のエラー・ログが吐き出される /var/webmin/miniserv.error を覗いてみると、以下のようなエラーが。

[31/Dec/2008:01:04:10 +0900] miniserv.pl started
[31/Dec/2008:01:04:10 +0900] Perl module Authen::PAM needed for PAM is not installed : Can’t locate Authen/PAM.pm
in @INC (@INC contains: /usr/libexec/webmin /usr/lib/perl5/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/5.10.
0 /usr/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor
_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl .) at (eval 1
0) line 1.
BEGIN failed–compilation aborted at (eval 10) line 1.

どうも、Perl のモジュールである Authen::PAM が入ってないよ、ということらしい。

ところが、openSUSE 11.1 には、この RPM パッケージは用意されていません。…ということで、今回は SLE 10 用の SRPM を持ってきて、そちらを使うことにしてみました。

こちらから、perl-Authen-PAM-0.16-6.1-sle10.rf.src.rpm をダウンロードしてリビルドします。

$ rpmbuild –rebuild perl-Authen-PAM-0.16-6.1-sle10.rf.src.rpm

(私の場合は $HOME 以下に rpm ディレクトリを配置し、.rpmmacros も置いてあるので一般ユーザで実行していますが、その準備をしていない場合は root 権限で実行してください。/usr/src/packages/RPM/以下の該当するアーキテクチャ名のディレクトリ以下にバイナリの RPM パッケージができるはずです)

出来上がった RPM パッケージをインストールします。

# rpm -Uvh perl-Authen-PAM-0.16-6.1.sle10.rf.*.rpm

インストールが完了したら、以下の通り Webmin を再起動します。

# /etc/init.d/webmin restart

これで、ブラウザで htps://IP_ADDRESS_OF_SERVER:10000/ を開けば – 証明書が不正だと叱られるかもしれませんが – webmin のログイン画面が現れるはずです。

足りないと言われていたのは Perl のモジュールでしたから、CPAN 経由で導入するという手もあるかもしれませんが、なるべくなら RPM で管理しておきたいので、今回はこういう方法で入れてみました。とりあえず、openSUSE 11.1 で SLE 10 用の SRPM が再構築して使えそうだ、という目処がたったところが収穫でしょうか。