目次へ

不定期連載準特別テーマ

NISチャレンジ

/背景/RedHat7.0.1J/NISサーバ on Opti/とはいえ結構冷や汗をかきました/赤帽のNISクライアント設定/赤帽にautofsをインストール/だから本のとおりにやれっての!!/本命ソルッパチ登場:サーバのホームを奪え!/怪しい輸出品/ルートのお宿は?/


背景

とにかくそらりんでできることを何でもやってみようという理由でNISの構築にチャレンジした。今WebDBサーバとして実稼働しているPowerEdgeは、デスクトップクライアントのOptiとNFS共有はしているが、NISでサーバのホームをマウントとかはしてない。というのもPowerEdgeはまだデータベースを使う(家計簿をつける)ときにしか使わないので、さすがに電気代やマシンの寿命のことを考えると終日つけっぱなしということはない。Optiだけを単独に使うほうが時間的には長い。おまけにうちのSolarisマシンはまだこの2台だけだし、だからPowerEdgeのホームをOptiにマウントする必要もないしかえってめんどくなるというわけだ。
だがNISはやってみたい。とするとOptiをサーバにして、クライアントは・・・600EにLinuxということになるだろう。
しかし、この前MLDがWin98にインストールできなくなりムキーと思ったわたしは600Eに2000proを入れてしまった。どーすると思っていたところに、UNIX USERの記事に「2000と赤帽のデュアルブート法」というのが書いてある。さっそくやってみることにした。

2001年9月21日

ページ先頭に戻る


 RedHat7.0.1J with Win2000pro on ThinkPad600E

UNIX USER2001年10月号の154ページ「ディストリビューション・オフィシャルFAQ/RedHatLinux」に書いてあるとおりにすればできるのであえてこのヘボが書く必要もあるまい。だが、いくつか特記すべき事項はある。

  1. 最新のRedHat7.1Jを使いこなすのは、わたしにはちょっと無理くさかった。なぜならLinuxConfがない。で、無線LANを使っているわたしはwvlan0というデバイス名を使いたいのだが、どうやら代わりに使うべきらしいGUI設定ツールnetconfigでは、Interfaceの追加でまず種類をEthernetと指定すると、デバイス名が強制的にeth1になる。これはリネームはできず、これでいいのかもしれないけどどーも気持ち悪い。
  2. 最新のRedHat7.1Jでは、無線LANをAd-Hocで使いたいわたしがいつもの通り/etc/pcmcia/config.optsを編集してport_type=3の指定を生かして再起動すると再起動画面で「あんたいつまで古いAd-Hocモード使ってんの、iwconfig見て直してよね」のようなメッセージが出る。
    これらは・・・たぶん、ちゃんと設定法はあるに違いない。だが、今わたしがやりたいのは一刻も早く赤帽環境をOptiの子分として確立することであって、他にもやることがあるとすれば、これは7.0に落として再セットアップするほうが早いと思って、使い慣れた7.0.1Jにした。
  3. そらりんでCDEに慣れ親しんだわたしは、それの流れを汲むというKDEのあのおしゃれな画面にあこがれ、今度はさすがに以前のように失敗はしないだろうからKDEでやってみようと考えた。だがやっぱりこの環境ではKDEはいまいちだった。具体的に言うと、コンソールでシェルにより出力される日本語のメッセージが化けている。起動一発目はちゃんと表示されるログイン画面の英文字が一度ログアウトすると次からは常に化ける。これは7.1の話である。7.0.1Jは最初からGnomeでやった。日本語のオフィスみたいのもついているのに残念だKDE。
  4. 600Eのフロッピードライブは外付けである。起動ディスクの作成もそこからのLILOブートもできるが、デスクトップ上でのマウントがなんだかむずかしい。グラフィカルなフロッピーアイコンをつついても反応ないし、コンソールからマウントコマンドをかますと一応アクセスランプはつくが書き込みができなかった。しょうがないので、デュアルブートに必要な/dev/hda2上のブートセクタは、作って置いてマウントしたFAT32Winパーティションに書き込んだ。
  5. フロッピーに書き込めたらの話だけど、ブートセクタ書き込むのにあわてて起動FDに書き込まないようにしような。
  6. あとNTFSはLinuxから見えんから、マウントできると言ってもマウントする意味ないからな。
  7. 二重起動のためには先に入れて置いた2000のC:\boot.iniを書き換える。ちょっとした書き換えなのだが万が一のことを考え、2000のための起動FDも作っておこうと考えた。どのファイルをFDに仕込めばよかったんだっけと思ってWin2000のヘルプを立ち上げたけど起動FDのキの字も書いてねえぢゃねえか!Windowsのヘルプって役に立ったためしねえよ!仕方ないからNTの本調べて確認した。

このようにして、Win2000とRedHat7.0.1JのHDDからのデュアルブートに成功した。以前できるはずのWin98とこれのデュアルブートが場合によってできたりできなかったりしたのより、むしろ確実な処理といえよう。すばらしい。

2001年9月21日

ページ先頭に戻る


NISサーバ on Opti

次はOptiplexのそらりんでNISサーバを起動する。方法はSolarisReview第2弾のNIS特集と、UNIXUSER2001年10月号の「Solaris道を行く」を参考にした。
全体の流れはSolarisReviewに従った。ただ注目すべきは、/var/yp/etc/以下の設定フォルダである。/etc/以下にあるネットワーク関係の設定フォルダをそこにコピーするのだが、もとからないいくつかのフォルダを、ypinit -mをかますときに要求され、なければエラーメッセージが出る。SolarisReviewではこれは無視して大丈夫と書いてあったが、「Solaris道」のほうでは要求されるファイルを名前だけ、ダミーで置いておくことを推奨している。どのエラーが無視してよくどのエラーが致命的なのか区別のつかないわたしとしてはむろん、後者を選んだ。するとマジで「本日はよいお日和で、心配されたエラーもなく、無事にサーバがセットアップされました」というメッセージが出てうれしかった。

2001年9月21日

ページ先頭に戻る


とはいえ結構冷や汗をかきました

実はNISサーバ導入にあたって、それまでのネットワーク環境が殺されてしまったか!と冷や汗をかくことがいくつかあった。全部解決したのだが。

  1. 最初、いきなりこれまでの家庭内LANで参照していたURLをねすけ上で参照できなくなってしまった!NISとDNSは両立できないのか?!・・・なわけねーだろ。実は、ypinitをかますなどする前に/var/yp/Makefile/を修正して、参照ディレクトリを/etc/から/var/yp/etcに書き換えておかなければならないのだった。それを教本を読み飛ばしてしまってやっていなかったのだ。本はよく読め。
  2. 次は、ルートディレクトリをファイルマネージャウィンドウに表示できなくなった。どうやらおっそろしく時間がかかっているらしいのだ。lsコマンドでは見られるし、それ以下のディレクトリは表示されるが、やはり/etc/ディレクトリなどは少し時間がかかる。それからNFSのマウントがやっぱりできない。マウントコマンドが行ったきり雀・・・
    この解決はWebサイトで見つけた。ypstartのスクリプトで、もし/etc/resolv.confファイルがある場合は-dのオプションをつけてypservを起動せよという部分がある。これはdnsを参照しに行けということらしいが、これでネットワークがグチャグチャになってしまうらしいのだ。shのスクリプトはpostmasterの起動でさんざ苦労したときにずいぶん話がわかるようになってきている。かなりの確信を持って書き換え、リブートしたら、マジで回復した。すげえ。Solaris8のFAQにあるらしいのだが、やはりこうして複数のサイトで引用していただいていると助かる。
  3. いろいろやって大丈夫そうなのでNISを復活させたが、なぜかypcatが全然効かない。ypbindが走っていないという。他のyp関係デーモンは走っているのに、なぜypbindだけが・・・自業自得だった。最初に上記のような理由でNISに不当な疑いをかけたわたしは、一度これはやめたほうがいいかなと思い、Answerbookに従ってNISをオフにしていたのだ。その方法とは、/usr/lib/netsvc/yp/ypbind実行ファイルの名前を変えて無効にすること。
    ついでながらこのアイコンは属性を変えても実行型として残る、なぜか。わたしはあまりビビったので、無効にするにあたり名前を変えるだけでなくその実行権すらチェックをはずしてしまっていたのだ。だがアイコンは実行型のままであった。ゆえにそれに気づくまで、名前を元に戻してもやっぱり走らないからどうしてかなーと思っていた。
  4. あと他の場所にも書いたが、hosts, auto_homeなどの各種設定ファイルに設定を足したときは最後ちゃんと改行打とう。追記したつもりで、改行を忘れるとmakeで反映されない。

2001年9月21日

ページ先頭に戻る


赤帽のNISクライアント設定

さてクライアントのほうは?同じ処理をしたあとypinit -cをかますSolarisと違って、赤帽だとypinitのオプションはマスタサーバの-mとスレーブサーバの-sしかない。そのかわり、Linux Confで(じゃなくてもいいんだろうたぶん)NISサーバを指定するのだ・・・と、実はそれだけではダメ。Linuxで使ってるMD5パスワードというのを無効にしなければ。それはインストールのときにチェックをはずしておけばいいのだが、チェックしたままインストールしてしまった場合はauthconfigとコマンドする。すると設定画面が現れるからMD5のチェックの米印(違うって)をはずしてやればよい。
わたしの場合ちゃんと「Solaris道」にそれが書いてあったのにきちんと読まずにLinuxConfで先にNISの設定をしてしまってから、authconfigでMD5を解除した。するとauthconfigの設定が反映されると同時にいきなりNISが走り出してすげえびっくりした。

後からわかったことだが、やっぱりauthconfigで設定しないといけないみたい。LinuxConfでサーバを設定したはずなのに接続できてなくて、authconfigを起動したらNISの設定全然されてなくて、こっちで設定したらいきなり走り出した。

2001年9月21日

ページ先頭に戻る


赤帽にautofsをインストール

これも「Solaris道」に書いてあるとおりだ。ただしネットでゲットしたautofsパッケージだが・・・赤帽7.0.1JのGnoRPMはちと不安定で、パッケージを焼いたCD-Rから追加しようとすると致命的なエラーと言って閉じてしまう。困ったもんだ。だが、それをやるせなくHDのどっかのフォルダにコピーして、なんとなくファイルマネージャ上で右クリックして「インストール」というのがあったので選んでみたらインストールされた。そ、そうだったのか・・・。

2001年9月21日

ページ先頭に戻る


だから本のとおりにやれっての!!

 さてここまで四苦八苦したNIS設定。最終的にやりたいことは、赤帽にそらりんのユーザホームディレクトリをマウントすることである。ユーザnonikoがお毒味役。まずはデフォルトの/home/nonikoディレクトリを削除(無謀なことを・・・名前変えるぐらいにしとけよ・・・)
それから、Linuxの場合は直接/home/以下のディレクトリに読み書きすると危ないらしいので、/import/home/というマウントディレクトリを作って置いてそこにマウントし、そこから/home/以下にシンボリックリンクを張れと、Solaris道には書いてあった。
さてやってみるが、どうもautomountがうまくいってないようだ、と見えた。でも、手動で

mount -t NFS Opti:/export/home/noniko /import/home/noniko

とやって、シンボリックリンク/home/nonikoを開けてみると・・・そらりんCDEの設定ファイルと赤帽Gnomeの設定ファイルが両方突っ込まれた偉くにぎやかなのに子ホームが現れる。だ、だいじょうぶなのか?混乱しないのか?・・・とにかく、NISは生きているらしいということがわかる。問題は、自動マウント・・・
ふと「Solaris道」を読み返す。「ではユーザーmayumi(かなんか)でログインしてみてください。そして自分のホームディレクトリを確かめてみましょう。サーバのホームがマウントされているのがわかるはずです」と書いてある。
わたしはというと・・・rootでログインして、ユーザーnonikoのホームを開いて、ないなあと思っていた。
ここまでやったんだから、本当に、「そのとおりに」やってみよう。rootからログアウトして、nonikoでログイン。それから画面の隅にある「ホームディレクトリ」をつつく・・・
おおー。
おおおおー。
さっきのnonikoのホームディレクトリが!そういうことだったのね?!なーるーほーどー。「本の通りにやっているつもりで実は我流でハマっているだけではないですか」とくろうとさんに指摘をされる初心者の行動というのは、つまりはこういうことか。わたしはてっきり、mayumiさんにはroot権限がないから、そうやって確かめてるだけなのかと思っていた・・・
にしても。これで、赤帽クライアントでNISログインはできることがわかった。すごい。Solarisもすごいが赤帽もすごい。PC-UNIXとは言うが、やっぱりいわゆるパソコンとは一線を画するものがあるんだなと思った・・・UNIX、網がなければただの箱。
で、これからどうするか?・・・設定できたんで、これで満足です。ま、Optiと赤帽は、いつでも再セットアップ覚悟の実験用マシンとして使い倒すでしょ。

2001年9月21日

ページ先頭に戻る


本命ソルッ八登場:サーバのホームを奪え!

そうこうしているうちに、結局PowerEdgeにNISサーバを入れてしまった。そしてoptiはそのクライアントに成り下がった(最初からそうしたかったんだってよ)。となると、Solaris同士ならもっと簡単にサーバのホームをマウントできるはず・・・・と思ったのが、実はこれが難しかった!しくみさえ理解すれば、難しくないのだが!

1)サーバ上でユーザnonikoを作る例。今rootでグラフィカルログインした状態でホームディレクトリは/export/home/nonikoにしたところです。もちろん、rootでのログインはすべてを無に返しても人生に一片の悔いなしという人だけがやってください。
2)作ったら、一度rootを抜け、今作ったユーザで一度サーバにグラフィカルログインする。実はこれをしないとデスクトップ情報がホームディレクトリに書き込まれないようなのだ。
3)適当な権限に戻った後、/etc/passwdと/etc/shadowをそれぞれ/var/yp/etcにコピーする。
4)コピーした/var/yp/etc下の両ファイルからルート情報を消す。
5)/var/yp/etc/passwdファイルのユーザ情報で、そのホームディレクトリを/export/homeから/homeに書き換える。そりゃそうだと思うよな。
6)一方で/etc/passwdのほうからはユーザ情報を消す。
7)/bar/yp/etc/auto_homeの記述が
* power-edge:/export/home/&
になっていれば、このファイルは何もしなくてよい。
8)var/ypに移り、makeをかます。auto_homeを変えた場合はmake auto.homeもかます。
これで完璧である。クライアントマシンを再起動してもちゃんとグラフィカルログインできる。

さて、その解説である。これでようやく、この書き込みも属性変更もできないくせに誰のホームでもない/homeというフォルダはなんなんだよ?という疑問が解消した。これは、NISクライアントマシンのためのもので、クライアントマシン上で/homeにアクセスするとサーバの/export/homeがそこにマウントされるためのものなのだ。
そして、Solarisのオートマウント機能というのは、「呼ばれて飛び出てジャジャジャジャーン方式」である。つまり公開されているサーバのnfsフォルダは、クライアントからアクセスされて初めてマウントされるのだ。
NISでホームディレクトリにオートマウント機能を使うと決めた場合、クライアントのホームディレクトリは/homeにマウントされることが決まっているのだ。これは/var/yp/etc/auto_masterというファイルに指定してある。
だから、きちんと設定がされていれば、クライアントマシンからユーザでログインするということで、/homeにアクセスするから、/export/homeが呼ばれて飛び出ることになる。
ところが、このとき一度サーバでグラフィカルログインしてデスクトッププロファイルのファイルを書き込んでおかないと、クライアントからはデスクトップの適当な設定が読み込めずログイン画面に戻ってしまうというエラーになる。
ただし、これでは5)のように、いちいち/var/yp/etc/passwdの内容を書き換えなければならずめんどくさい。という場合は別にサーバの/export/homeをユーザの/export/homeにマウントするようにしてもいい。いいのだがこれにはこれでちょっと問題がある。

2001年10月09日

ページ先頭に戻る



怪しい輸出品

この/export/homeフォルダだが、WebStartでソルッ八をインストールするとき、デフォルトだとこのフォルダにほとんどのHD容量が割り当てられてしまう。全部で9GのHDDだと7G近くも・・・で、カスタムインストールで2G近くとるようにして、バックアップデータやソースファイルなどもそこに入れてデータフォルダ扱いにして使っていた。
そこにサーバのホームをマウントすることにしてみた。上の状況で、いちいちpasswdのユーザホームディレクトリの場所を書き換えたくないという理由からだ。もちろんそうした既存データは消してきれいにする。そうしてマウントしようとする。
mount -F nfs power-edge:/export/home /export/home
今、サーバはpower-edge, クライアントはoptiである。ところが、「/export/homeは使用中です」と出る。どうやっても出る。この回答はSolarisReviewから探し出した。
要するに、/export/homeというフォルダには、すでにインストールのときに2G切ったスライスc0t0d0s7が、マウントされているというのである。
なーるほど。これは/etc/vfstabを見ればわかる。見ればわかるだけではない。このスライスc0t0d0s7のマウント先を・・・作って置いた適当なフォルダたとえば/localhomeなどというものに書き換えてやれば・・・/export/homeは解放されるのだ。
だが、このままではまだダメだ。ログインすると、「ホームディレクトリがありません、復旧セッションを実行するかやめれ」と言われる。どうして?それはauto_masterファイルのせいである。ここに
/home auto_home
と書いてある記述を
/export/home auto_home
と書きかえてやらなければならないというわけだ。
よーやくわかった。けどわたしはせっかくhomeフォルダがあるんでhomeフォルダをそのまま使うことにした。今度インストールするときはクライアントに/export/homeを作るのやめよう。

2001年10月09日

ページ先頭に戻る


ルートのお宿は?

こうして一般ユーザはクライアント・ホームレスでもいいということになった。だがルートはどうか。さすがにルートの基地をサーバに間借りするのは危険すぎる。もちろんコンソールでバリバリ操作回せる人ならば、コンソールでのログインでは「この宿なしめ!」と怒られながらも「じゃあ/を貸してやるから汚すなよ(とまでは言わない)」と次の操作を受け付けてもらえる。だがGUI依存症主婦にとってGUIを使うなというのはSolarisを使うなというのと同じだ。
今、サーバpower-edgeのrootのホームディレクトリは、実は/export/homeにある。これはまだpower-edgeがここまでサーバとして活躍し始める前に、rootログイン依存症でもある主婦はrootで作業しまくる際に、デフォルトのルートのお宿である/の下にいろんなファイルが溜まるのがよろしくないので、/etc/passwdファイルを書き換えて強制移住させたのだ。だがこれをやったらデスクトップアイコンからパネルからNetscapeのブックマークから全部一から設定やりなおしなので非常にめんどくさい。
ではクライアントoptiのrootのホームは?・・・/rootというディレクトリをつくって、そこに引っ越した。そうして、
サーバもクライアントも、それぞれ/etc/passwdにはrootとdaemon、及び半人半魔postgres(サーバのみ)以外の情報はおかない。
サーバもクライアントも、それぞれ/var/yp/etc/passedにはroot情報をおかない。
サーバもクライアントも、それぞれのnsswitch.confには
passwd files nis
group files nis
と書いておく。
実はこれを nis files とやったら、最初の起動のときrootがopenwin(英語版)にさらわれてしまった。PgSQLのpostmasterの起動スクリプトをいじったときにpostgresがさらわれてしまうのと同じ症状である。ゆえにrootのお宿はそれぞれのマシンでローカルにひそんでいるべきである。

2001年10月09日

ページ先頭に戻る