予算はないぞ予算はないぞといいながらダンナさまがまたSPARCマシンを買ってくれました。いよいよSPARCマシンのSPARCマシンによるSPARCマシンのためのサーバが稼働開始です。これで思う存分Bladeでボーケンできるってもんです鯛。すなわち以後サーバのあらゆる可能性はまずBladeで追求されたあと、安全確認の上Ultraに導入されることになるでしょう。というわけで立ち上げ以後はあまり新規な話題は出ない(ていうか出ると困るんだヨ〜)と予想されるので上から下に読む書き下し方式
・・・と思ったんだけど、なんかやっぱりポツポツ、話題ができる!その後のコーナーを新しく付け加えよう!
/蟻の穴から堤も(Buildの話じゃないです)/どおーしたウルトラー!!(って悪いのはやっぱりわたしなのねッ!!)/UltraのデスクトップアプリをBladeで実行 /MySQLも自動で起動/
/Ultra10購入/またも初対面を逃す/パニオンSambaはバッチシ/なのにPostgresでやられる/パッケージの甘い蜜と落とし穴(と懲りない主婦)/疑心暗鬼地獄/Nobody's Fault But Mine/Namazuもヨレヨレ/モニタレスの逆襲(1)のに子の浅知恵ではこの程度/モニタレスの逆襲(2)キーワードはシリアル/モニタレスの逆襲(3)実行できているのか?/モニタレスの逆襲(4)知らぬが仏/モニタレスの再逆襲・シリアルログインの確認/
実は、BladeUltra連続殺傷(傷はBladeだな)事件において、わたしはひとつ大きなどじをやった。
うちのサーバだからアカウントはわたしと夫である。その夫のホームディレクトリのバックアップを忘れていたって言うか、やろうと思っているうちにUltraが先に死んでしまったのだ。
というのも、仕事で忙しい夫はもっぱらWindowsしか使ってる時間がないように見える。アカウントはむしろsamba共有のためのもので、Windows用の共有フォルダは別にありそれはしっかりバックアップしたつもりだ。Windowsと共有してもほとんど意味がないであろうそのホームディレクトリはおもにわたしのためにSolaris用のツールなどをネットから採ってきて転送用に置いておいてくれるために使われている(ありがたいなあ〜)はずで、先月だかアクセスさせてもらったときもそんな感じだったはず。今すぐUltraの中身を消すわけではないし、そんなわけでついつい後回しになってしまい・・・
だが。そこに大事なファイルが入っていなかったという保証は全然ない。第一サーバのデータは夫婦の共有財産、それを勝手な行動と不注意で失ってしまうなんて、管理者以前に妻としてあまりにも誠意に欠けるではないか。考えているうちに自分の罪の深さにどんどんへこんで行った。
どーしよーかな。でも、ホントに使ってないんだったら、このまま黙っていて自分の中だけで十分反省するようにしておけば・・・
いや。
ダンナ様に隠れて保険解約だの借金だのという転落はそういうちょっとしたごまかしからどんどん深くなっていくものだ。メールで正直に告白した。すると忙しい中ダンナ様はジョークっぽい返事をくれた。やはり大事なデータは入っていなかったらしい。ホッとしたと同時にこれこそは二度と同じ間違いや迷いを起こしてはいけないと決意した。一度目の間違いは正確に書いとかないと反省が活きないので書いてしまう。
ホントにもっと管理者として勉強しないといけないなあ・・・
2002年07月11日
ページ先頭へ戻るBladeが突然使えなくなったので、そうなるとSolarisが使いたくてしょうがなくなる。WindowsやMacですることがたくさんあるときは2,3日使わなくても平気なのにゲンキンなものだ。Intel版SolarisをPowerEdgeに戻して使うか?だがIntel版はなにせForteもJBuilderも使えない。・・・ならばPowerEdgeをサーバにして、Ultraを開発などに使えばよい。
そう考えてPowerEdgeにSolarisを入れる。UltraにXEmacsを入れたりインターネットの接続設定など、環境を整える。半日くらいUltraでプログラミングなどして、夜寝ようと思ってUltraのブラウザでPowerEdgeのWebminサーバにアクセスし、まずリモートでPowerEdgeを落とした。それからUltraを自身のターミナルから終了させたつもりが、なかなか終了しない。すでに終わってしまったPowerEdgeのNFSを呼び続けているのだ。
BladeからUltraを落としてからBlade自身を落とす、毎日のようにやっていたことだ。そのときBladeはやはりUltraのNFSにアクセスしようと少し時間を食うが、すぐにタイムアウトして終了する。
そういえば今日午後買い物に行くときやはり、夏場は部屋を閉め切ると暑くなるからと全く同じことをやった。するとUltraはPowerEdgeのNFSをこのように求めて、ずいぶん長いことトライしているなとは思っていたのだ。だがそのときは買い物に支障が出るほどの時間ではなくやがてタイムアウトして終了していた。
今度はテコでも終了しない感じだ。だったらそのときPowerEdgeを一回復活させて見ればよかったのかもしれない・・・Bladeが動かなくなったショックで少しアタマの働きが鈍くなっていたのだろうか。わたしはそのままstop+Aでokプロンプトを出しpower-offで電源を落としてしまったのだ。
翌日Ultraは死んでいた。リンクの何かが見つからないという・・・きのうのPowerEdgeとの関係が原因のようだった。さてこれはBladeに続く不幸なのか?それとも午後あたりからちょっと挙動のおかしかったUltra、いずれは落ちる運命にありPowerEdgeにバックアップがとれていたのは結局幸運だったということになるのか?・・・後者と考えればかなり気は楽になるが、圧倒的に前者、それも不幸というよりは自業自得感のほうが強い。よけいなことをしないで静かにBladeキーボードの到着を待っていれば・・・それはUltraの死亡確認とほぼ時を同じくして宅急便で送られてきたわけだから・・・
いずれにしろ、もうNFSクライアントからサーバを落とすのはやめようと心にきめた。Ultraサーバが復旧したのちは、必ずBladeを先に落とし、それからUltraをsambaの縁しかないWindows(PocketGearがあるじゃないかッ)などから落とすことにしよう。
あとデータのバックアップについてもっとマジ本気で考えなければ。今PowerEdgeにサーバはセットアップされている。このままUltraの隣に置いて定期的にバックアップサーバとして使うか・・・
2002年07月11日
ページ先頭へ戻るUltraのPostgreSQLのデータを直接いじるのに、Bladeからtelnetでログインしてpsqlを立ち上げた。ところがひとつ困ったことが起きた。日本語のデータをinsertしたいのだが、コンソールから入力すると文字化けしてしまうのだ。表示は日本語で見えるのだが、キー入力もあとコピー・ペーストもダメだ。
環境は、その状態でecho $LANGとやると、jaと帰ってくる。うーん。これ以上どーしろというか?
悩んだわたしはこんなことを考えた。よく考えついたものだなとあとから思うけど。
ターミナルウィンドウってのもデスクトップアプリケーションのひとつだよな。てことはUltraのデスクトップアプリケーションとして立ち上げたターミナルウィンドウを、あのXサーバとかXクライアントとか言う関係で(言いたいことがいまいち曖昧なのが弱い!)Blade上に持ってくればいいんじゃないのか。
これは、WindowsからASTECXでUltraのCDE画面をカッパらえるように、BladeでもUltraのCDE画面をカッパらえるはずだヨと、のんのんから再三言われていることから思いついたのだが・・・それはまだ実行できていない。だが今回は、「Ultraの任意のデスクトップアプリケーションをBladeのCDE上で実行させる」というやり方を本で見つけた。
それは前買った「Solaris8サーバ構築ガイド〜理論・実践・応用〜」(井上亜湖著、秀和システム発行)である。これはNISチャレンジのときに、いろいろな記事を拾い読みしたが「つまり具体的にどーすんだヨー」がよくわからないでいた、そのつまりを非常に明解に示してくれた本である。
これを読んでやってみることにした。だが、どーもうまくいかない・・・と思っていたら、わたしは自分が大きな勘違いをしていることに気がついた。
UltraのデスクトップアプリをBladeで見る、という場合、XサーバはBladeのほうで、UltraはXクライアントなのである。
言われてみりゃUltraがBladeの画面を借りてたたずまっているわけだから当然なのだが、どーもホラUltraはファイルサーバだったりウェブサーバだったりするから、こっちのほうがサーバと呼ばれるべきもののような錯覚に陥っていたのだ。その錯覚を正したとき、バシーッとすべてはうまくいった。
それには、まずUltraのほうでrloginを復活させなければならない。これはfingerの次にセキュリティー的にアレなので切っておいたほうがいいと言われて切っておいたのだが。だがせめて/etc/host.equivに
host_username
の表記で、ホスト名とユーザ名を一通りだけ指定して、今このBladeでわたくしがログインしたときにだけアクセスが許されるように一応は、しておいた。気休めかも知れないが。
そうしてBladeのほうでユーザーはヒラユーザでオッケー、デスクトップからBlade自身に対して
/usr/openwin/bin/xhost +(Ultraのホスト名)
とやると、
(Ultraのホスト名)being added to access control list
と答えてくれば成功のようだ。
こうしておいて、Blade上でUltraにrloginする。
で、今やろうとしているのは向こうのターミナルウィンドウ、つまりdttermを持ってくることだ。これは
/usr/dt/bin/dtterm -display (Bladeのホスト名):0.0 &
すると、「端末エミュレータ」というタイトルのウィンドウが一個立ち上がる。これはいつもBladeでコマンドを打ったり、ていうかさっきBlade上でUltraにrloginするのに使ったウィンドウとは別のものだ。
つまり、Ultraにつながったモニタに映っているCDE上のワークスペースメニューの「コンソール」アイコンを、Ultraにつながったマウスでクリックして立ち上がるはずのウィンドウが、Bladeのワークスペース上に今、見えているのである。もちろん見えるだけではなくBladeのキーボードから入力できる。
psql pimm
と、打って、Ultraのデータベースの操作を始める。
意図したとおりだった。この状態でのみ、データに日本語を入力できる。Bladeでのターミナル上でtelnetとか、rloginだけでは、日本語は入力する先から文字化けするだけだ。
試しにやってみたが、NetscapeもちゃんとUltraのものがBladeで立ち上がることが、ファイルを開くで直接Ultraのディレクトリから(Bladeへのマウントディレクトリでなくて)htmlファイルなどを開いて見れることから、確認された。
すごい。でもダンナ様がやはりおっしゃるには「だからさ、そもそもログイン画面からUltraのそれをBladeに持ってきて、UltraのCDEをズバーッとBladeに広げられるはずなんだけどナ」
たぶんできるだろうけどまだやってない〜。 と思っていたらのちにあまりにも簡単であることがわかった。
2002年05月20日
ページ先頭へ戻るPocketGearでSQLに接続するには、古いJDKでもJDBCドライバをカンタンに作れるMySQLがいい感じだ。そこでUltraにこれを入れることにした。
MySQLは例のNSUG様の必殺パッケージCDに入っている。今のところUltraにはモニタがつながっているので、CD-ROMを直接つっこむ。
MySQLの起動も、LD_LIBRARY_PATH=/opt/sfw/libを教えてやらないと、強制終了する。NSUG様パッケージでは、PostgreSQLはLD_LIBRARY_PATHの指定をしておいてやれば、インストールと同時にデータベースの初期化までしてくれる。MySQLでもその意図をつけてくださっているようだが、こちらは環境設定していてもインストール直後の自動起動にはどうも失敗するようだ。もちろんそのあとすぐ手動でやりゃあいいんで問題ない。つまり、
#mysql_install_db -user root
とやればいいのだ。わざわざmysqlユーザを作る必要すらなさそうだ。次回からは問題なくmysqldを起動させることができる。その起動方法だが・・・
実はこのNSUG様MySQLはもっと前からBladeで使っていたが、ひとつ問題があった。それはNSUG様postgreSQL同様、起動スクリプトもインストール時に自動で用意していただけるが、どーもそれがうまく起動してくれないでいた。Bladeのときは使うときに手動で起動していたが、Ultraに入れて使うとなるとやっぱり自動で起動してほしい。
取り組むことにした。なぜ起動エラーなのか?BladeでOS起動時のメッセージを見てみる。
starting up mysql..
のあとに、ヘンな記号が四つ。
これはアノ4文字言葉に違いない・・・それは「強制終了」!
では、起動スクリプト/etc/init.d/mysql.serverからやってみよう。suに上がって、
/etc/init.d/mysql.server start
libナントカが見つかりません。ファイルもディレクトリもありません。
強制終了
「libナントカが見つかりません」は今や勝利の印である。見つけさえすればいいからだ!スクリプトファイルを開けてみる。すると、
PATH=/sbin:/usr/sbin:/bin:/usr/bin
export PATH
という部分がある。これに続けて、
LD_LIBRARY_PATH=/opt/sfw/lib
export LD_LIBRARY_PATH
と書いてやった。こうしてもう一度/etc/init.d/mysql.server start・・・今度は起動したぜ。
そこでこれを/etc/rc2.d/S97mysql.server にコピーする。
これでちゃんと自動で起動した。イェ〜。
2002年05月20日
聖剣Blade100をゲットして以後は何も望むまいと思っていたわたしだったが、ある日我がスペルマスターがおっしゃった。「のに子よ、シェルもロクに知らないエクストラビギナー状態よりほぼ3年、よくぞ家計簿データベースシステムなどを曲がりなりにも構築できるほどに成長した。よってその労に報い特別にSunWSをもう一台買ってつかわすから心してサーバなどに利用するように。ていうかやっぱPowerEdgeはNTで使いたいから返して」
というのもPowerEdgeのSolarisではオプションのテープドライブがどーしてもサポートされないという悩みがあったのだ。それにダンナ様はどうしても仕事上Windowsのデータを大量に利用しなければならない。それに比べればのに子のSolarisデータは圧倒的にデータ容量が少ない。にも関わらず平日朝から晩までサーバを使用するのはのに子だ。その度にほとんどがダンナさまのWinデータである9Gx3台ものSCSI-HDDを立ち上げるのも無駄くさい。それよりはもう少し規模の小さいSPARCマシンをのに子UNIX専用のサーバにすればよい・・・そういう経緯である。
ダンナ様が考えていたのはそのときちょうどアキバの「コンピュータの店*っと」で激安広告の出ていたUltra5という機種だ。だが実際そこに行ってみるとさすがにみなさん目のつけどころは同じというわけか、その激安U5はすでに出払ってしまったという。2万プラスすればUltra10ならまだあるが・・・少し考えることにしてアキバの他の店など探したが、他の店でもやはりSSかUltra10以上かの、二極化の様相を呈していた。一時期のボジョレー・ヌーボーのように一気に値が下がりそのため一気に品薄になったというところだろう。それにやはり信頼できる場所で買いたい。ということで「*っと」に戻って、Solaris8プリインストールのUltra10を買った。それでも「**TEC」の安かろう*かろうパソコンに比べてまだ安いくらいの値段である(伏せ字が多いな・・・)
2002年2月22日
翌々日にそれはS川急便のいつものさわやかなおねいさんによって運ばれてきた。このうちは何台運び込めば気が済むのかと彼女は思っているかも知れない。
Ultraにはちゃんとキーボードもマウスもついていた。Bladeからディスプレイ、電源、イーサネットケーブルを借りてこいつに挿す。
電源はまず背面スイッチがあって、それから筐体のパワーボタンもしくはキーボードのパワースイッチ。最初なぜかファンは回るが電源ボタンが付かない。何回か押したり消したりしているとつくようになった。今考えると寒い部屋から暖かいところに持ち込んだので結露防止安全装置のようなものが働いたのか?それともリストア後の最初の起動だからか?以後、そのようなことは起こっていない。
混乱したのには実は決定的な理由があった。モニタが映らない。
端子を抜くと「抜くなよ」とモニタに怒られるので信号は行っていることがわかるが・・・
まさか、と思った。実はディスプレイ端子は二つある。チョクで挿せる今の形と、ss10みたくアダプタのいる古い形だ。わたしはそのうちチョクで挿す端子のほうを選んだ。だが・・・ss10から変換アダプタをもらってきて古い方に挿し、そこにつなげると出た。もう起動しまくってし終わってWelcome画面だった。またも、Sparcマシンの最初のprom画面を拝むことはできなかったのだ・・・
マウスが動かなかった。稼働中にマウスを抜き差しするのは抜き差しならない事態を招くことがあるらしいが、このまま電源を落とすのとどっちが危険か考えた。「ちょっとだけヨ」などといいつつss10のマウスと変えてみた。ちゃんと動いた。
どうやら初期(中期?)不良らしい。お店に電話してマウスが動かないんですがと言うとすぐに別の送りますと言われた。新品を買えば7000円だかするマウスなのに、症状に関するなんの確認もなかった。きっとSunマウスは段ボールとかに腐るほど積まれてあっていくらでも換えがあるのだろう。
2002年2月22日
さてこいつをサーバマシンとして育てていくぞ。まずサルベージ用ヒラユーザを作り、PowerEdgeから.profileをコピーする。コンパニオンディスクを入れる。DNSとNFSの設定をする。
まず最初に試したのはSambaだった。だがそのためにWebminを入れた。そうしてパニオンSambaの設定をWebminからやった。
Module Configで、Samba関係のパスを設定してやればよい。なかなかわからなかったのはsmb.confの場所だ。/opt/sfw/libにあるのである。それからsmbdとnmbdはなんと
/opt/sfw/binではなく/opt/sfw/sbinにあった。他のファイルのパスも慎重に確かめながら修正する。
こうしてWebminのSamba管理ページからこれを管理することができるようになった。するとinetd.confにswatのポートを設定しなくてもWebmin経由でSWATにアクセスできるのである。こりゃすごい。
結局設定そのものはそのSWATでやった。共有は全くカンタンにできた。
問題は起動スクリプトである。この前から目をつけておいたUNIX USER 2000年12月号の(偶然にもその一年後に大特集がSambaだ)「Solaris道」でわざわざCD-ROMにご提供いただいたsambaスクリプトをCDから引っ張ってくる。
内容を調べる。パスに/opt/sfw/binと書かれてあるところと/opt/sfw/sbinと書かれているところがある。そのままで起動してみるとやっぱりひっかかった。すべてsbinに直して問題なく行った。あとはrc2.dやrc1.dなどのフォルダにこいつを放り込む。起動終了の番号の付け方は「Solaris道」に従った。
ドデショカ。おお、ちゃんと起動時終了時、smbdとnmbdが上がったり止まったりしている。もちろんWindowsからアクセスして、ガセでなく本当に共有の開始停止がなされていることを確かめたゾ。
2002年2月22日
懸案事項だったSambaの自動起動・終了、これができればあとはもう左うちわヨなどと考えていたのが甘かった。
次はPostgreSQLだ。Bladeで試してあるからもう大丈夫、とNSUGユーザ会様のCDを突っ込む。インストーラのメニューをよく見てみるとおやNamazuとKakashiもあるぢゃないの。それもやらなきゃならないんだからちょうどいいわ。
追加してみる。だが・・・NamazuとKakashiは問題なくインストールされたが、PostgreSQLのインストールになんと失敗してしまった。
なぜか。どうも、わたしは大変よけいなことをしたらしい。
あらかじめスーパユーザを作っておいたつもりだったのだが、名前を間違えていた。
postgresユーザでなければいけないのにうっかりpgsqlという名前にしてしまったのである。無論ちかごろMySQLばっかりやっていたせいだ(人のせいにしない)。
この間違いユーザ名がインストール時のなにかにひっかかったらしいのだ。全然違うgostpresとかだったら何の問題もなくパケジ様が自動でpostgresユーザをお作りになったのかも知れない(わからない)。だがこの妙にプログラムの根幹にからみそうな命名が悪かったのか、パケジ様は「不気味なユーザがいますね。ちょっとやめときましょう」と言ってインストールを中止してしまった。
2002年2月22日
そこで怪しい名前のユーザを削除し正しいpostgresユーザを作り直す。
もう一度インストーラを起動しインストールし直すことにしたが、そこで青くなる。
「このパッケージは既にインストールされておりいかなる上書きもインスタンスの生成もまかりならぬ」
と言って終わってしまったのだ。
では除去するしかなかろう。pkgrmをかます。
するとどうだ。「そんなパッケージはインストールされていません」というではないか。
ああ人の世とはかくも矛盾だらけのものなのか。わたしのアタマを「OSから再セットアップ」の半角2文字 + 全角9文字がよぎった。
だが、近頃ののに子はやはり少しずつ変わってきている。「待てよ」と思ったのだ。「ないものがあると言われているということは、あるという情報ファイルだけが残っているということじゃないのか?」
もっとも、全く変わってないのは、エラーメッセージが出たときにそれをきちんと読んで覚えておかないことである。「ナントカのエラーですって言うんだもん」「ナントカファイルが読めないとか言われて」・・・だから何のエラーでどこのナニファイルが読めないってんだよ?!これはおそらくホラWindowsのエラーメッセージがたいてい読んでも意味はわかんねえ、日本語訳がなってねえ、ら抜き表現が多い(多くない)ものだということに慣れてしまっている悪い癖だろう(他OSに責任を転嫁しない)
もう一度インストール時のエラーメッセージを見る。ホラあるじゃないの
「/var/sadm/pkg/NSUGpgsql/install/preremoveスクリプトのエラー」
そこでそこに行ってみる。だがそこに行き着かないでもわかった。pkginfoというのはそこに書き込まれた情報を読むことだったのだ。
なるほど/var/sadm/pkg/NSUGpgsqlというのが残っている。インストーラはそれを見てアタマっからこのパッケージはインストールするものだと思いこんでしまったのだ(そこまで要求するなよインストーラに)。
こいつを、消すまでもないどっかに移動してみる、すると今度はインストールできた。
そしてちゃんとデータベースの初期化までしてくれた。そのあと「これで起動できますヨ、そのときのコマンドはこれネ」というメッセージが出て・・・最後の最後でやはり、
「ナントカのエラー、ファイルもディレクトリもありません。PostgreSQLのインストールは失敗しました」
・・・だから、ナンのエラーなのか、ナニがファイルもディレクトリも夢もチボーもないのか、何でちゃんと見ないんだヨ・・・
2002年2月22日
(まあ、データベース初期化までできたんだからソフトウェア自体は大丈夫だろう)
とわたしは考える。(インストールできなかったってのはパッケージ情報みたいなああいう部分ヨきっと)・・・
でもどーかな。もしインストールできなかったっていうのが、この前Blade100に試したときいっそNSUGの終身会員(があるかどうかは知らない)になるかと思うほどわたしを感激させた起動・終了スクリプトのことだったら、この半壊パッケージの魅力はかなーり薄れることになってしまう・・・
それにはナニを差し置いても、再起動して見ることだ。再起動する。
Starting PostgreSQL...というメッセージは出る。だがこれは本当に「スタートしようと思うんだヨ」という意思表示にすぎず、実際にスタートしたかどうかとは別ということはIntel版での戦いでよく知っているのでぬか喜びしない。
ログインしてコンソールでプロセスを見る。ほら、postgresのポの字もない・・・
メッセージが出ることからそれは起動スクリプトがインストールされていることはわかった。だがそれはインストールされてないより悪い結果かも知れない。つまり壊れたファイルがインストールされてしまった?・・・
手動つまり/etc/init.d/pgsql.server startをかましてみる。 結果は・・・
あ〜〜〜〜〜
忘れてた。このままではシステムメモリの割り当てが少ないんだった。/etc/systemというファイルを書き換えなければ!
この前Bladeでいっそ(以下略)と勝ち誇ったときには、なぜか覚えていてっていうか、起動終了スクリプトの存在などつゆ知らずそもそも動くかどうか確信がなかったんで、その場で手動起動して確かめたんだったヨ!
書き換えたつもりで再起動するが、動揺しているわたしは、改行してないだの、スペル間違ってるだので上記ファイルの書き換えがうまくいっておらず、3回も起動に失敗する。
こっちはなにせインストール失敗の烙印を押されたパッケージに疑心暗鬼である。すぐに「やっぱりダメなのかしら?!」と思ってしまうわけで・・・
よおーやく、正しく書き換えを行い、postmasterが自動起動、終了してくれることを確かめることができた。
2002年2月22日
そうしてPowerEdgeからのデータリストアだ。今度は最初からユーザnobodyを作って、同名・空のデータベースを作っておく。全く問題なく、次々とCREATE宣言。
最後はこいつがちゃんとApache上で動くかだ・・・実はこの前Bladeで試したとき、それはやってない!!
やってみて貧血起こしそうになった。データベースから読み込まれて表示されるはずのデータがことごとく表示されない・・・書き込みもできない・・・
だが近頃ののに子は本当に少し違う。まず、perlとデータベースの接続ができているかどうかを、簡単なperlスクリプトを書いて調べてみた。問題なし。
次にApacheのエラーログも見る。何も書いていない。
ということは・・・まさか・・・
最後に残ったたった一つの選択!それは前々から不思議に思っていたことなのだが・・・
わたしがこのDBアプリを作るのにもっぱら頼った「三位一体の書」には、
「フォームからのアクセスはユーザnobodyによって行われるので、作ったテーブルにはnobodyにアクセス権を付与しておきましょう」
と書いてあった。だが、作っているうちに、なぜかそれをしなくてもフォームからアクセスできていることに気づいた。それでnobodyのアクセス権には注意しなくなっていた・・・初めて自作PCにIntel版ソルッ八を入れてからずっとのことである。
もしかしてそれだったりして?!
かなりダメモト気分で、家計簿データベースのテーブルのひとつについて
grant all priveleges on tablename to nobody;
と、psql上からやってみた。そうしてフォームを読み込み直すと・・・今アクセス権を与えたテーブルについてだけ、フォームに読み出されてきた。そのテーブルには書き込みもできるようになる・・・
おお〜〜〜
家計簿データベースのテーブルは31個もある。だがそれはテキストファイルにまとめて書いて一気にpsqlに読み込ませることで、まあそれほど苦労なく行った。注意すべきは、perlスクリプト中と違って、ただのテキストファイルに書く場合はひとつのステートメント毎に;が必要ということ。
これらからCGI操作によって作られたviewや新しいテーブルは当然nobodyが所有者だから問題ない。
こうして、楽勝かと思われたDBアプリの復旧は、えらくスリリングなものになった。でもとにかく復旧した。この次はさっくり行くだろう(当分やりたくないけど)
2002年2月22日
さてあとはNamazuだ。さっき順当にインストールされたパッケージだがちゃんと動くのかな?・・・
Namazu にはいろいろ必要なソフトウェアがあって、Kakashiはそのひとつ。あとNSUG様パッケージにはText::KakashiというKakashi用のPerlモジュールがある、これも忘れてはいけないのだろう。
以前ソースからコンパイルしたときにべったり頼ったSolaris Reviewの該当記事を見ると、このあとナニをすることが必要かわかってきた。特にパッケージの場合ディレクトリがデフォルトの/usr/localと違う点に要注意、である。
/opt/NSUG/etc/namazuディレクトリに、namazurcという設定ファイルがある。通常ではLANGがjaという行をコメントアウトアウトするだけでいいようだが、これに、indexとtemplateというもののパス指定がある。これが/usr/localになっているのは非常に危険なので/opt/NSUGに直す。
さて、次はindexファイルの設定だ。これはコマンドの記述がめんどくさいのでPowerEdgeのNamazuシステムで作ったコマンドスクリプトをIPアドレスだけ変えてやればいいが・・・
実行エラー。「MMagicが見つからない」という。
今度はちゃんと見たぞナニが見つからないのか!MMagic。見たことがあるぞ。いつも「エムエムマジック」とMを一個余計に言ってしまったり、扱うたびに「超エムエム〜」などという古代語を口走ってしまうあれだ!・・・
調べるとNamazuのソースファイルからコンパイルして作るPerlモジュールのようだ。これがパッケージにはついてなかったらしい(と思ったのはちゃんと見てなかったからで、実はちゃんとついていた。すみませんNSUG様、でも会員だから許して。2002年05月08日)。仕方がない、やるだけやるだす。
それだけのためにNSUG様CD-ROMからNamazuのソースをコピーして展開して、SolarisReview にあるとおりこのモジュールだけをコンパイルする。このときgccでコンパイルできるようにPerlのConfig.pmを書き換えておくのも忘れなかった・・・
が、この修正をやったあとさらに、てっきりパニオンで入っていると思いこんでいたnkf(readlineは入っていたんだけど、でも考えてみれば日本語関連のツールがパニオンに入ってるわけねえよな)も足りないと言われて、これもNSUG様パッケージから追加。
とにかく後付後付でモジュールを付け足して、インデックスファイルはかなり奇跡感高く生成された。
最後は/var/apache/cgi-binに置いたnamazu.cgiである。「サーバにデータがありません」と言われる。これはなぜ・・・
ああ。/opt/NSUG/var/namazu/templateにあるすべてのファイルを、親ディレクトリを同じくする/index配下にコピーしなければいけないのか。忘れていた。
(これもあとから見るとヘンだな。templateフォルダは/opt/NSUG/share/namazu/templateにあるはずだ。ゴチャゴチャやっていたんで、間違ってフォルダを連れてきてしまったのか?2002年05月08日)
それをやってもまだ・・・もう一度namazurcファイルを見てみる。
あ。templateフォルダのパスが/opt/NSUGl/になってる(localを不完全に消していた)・・・。でもtemplateの中身を全部indexにコピーしたこっちが重要で、templateなんてただヒナ型を集めたフォルダじゃないの?
・・・・いや。これでビシッとNamazuCGIが立ち上がった。そうなんだ・・・世の中にはまだまだ、のに子風情には読み切れないことがあるもんだな・・・
かなりヨレヨレだったが、これでNamazu検索システムも復旧した。
2002年2月22日
ようやくUltraサーバ完成!と思ったらのんのんに言われた。
「サーバなんだからデスクトップログインは切ったほうがいいよ。あとシリアル端末から入力できるようにしといて」
・・・
デスクトップログインを切ったほうがリソースを食わないというのはわかる。あのss10がデスクトップログイン画面を表示させるのに悲鳴のようなHDDアクセス音を出すことからも・・・
実際、モニタをつながないでグラフィカルログインを起動させるとエラーになるのではないかと懸念してPowerEdgeのときにモニタレスで使わない方法を非常に稚拙に試み四苦八苦したばかりだ。
だがシリアル端末って何。
よく話をきくと、「それはつまりキーボードを使わないということだな」と思えてきた。
万が一ネットワークから操作できないような状況のときシリアル端末から操作する、それよりは常にバックアップをとっておいてそんな状況になったときはズバーッと再セットアップして差分は泣き寝入る、というダサい対応をとることもできる(のか)。
だが正常ならロクに使いもしないキーボードとマウスを金魚のナニのようにくっつけたままケーブルを取り回したり場所をとったりするのは避けられるに越したことがない。
やってみようということになった。まずデスクトップログインをしない方法・・・
これがAnswerBookを見てもなかなかない。
「便利なものをつかいこなす方法」がいくら書かれていても、「それをいらない人が使わずにすます方法」というのはなかなかないものだ。
のに子脳味噌で考えられることと言えば、rc2.dのS90dtloginの属性をいじって実行権をはずすことだ。だが本当にそんなことをして大丈夫なのか。起動しなくなっちゃっちゃったりしないだろうか?
やってみるよりしょうがない。ドキドキの再起動・・・
上がってるじゃねえかdtlogin.
2002年2月22日
がっかりしたようなほっとしたような。・・・そう、あとでわかったように、実行権を奪うだけではダメなのだ。一番確実なのは消すか撤去だ。だがなにせホラせっかくここまで設定したサーバをとばしたくないとばしたくないと戦々恐々としてるからそこまで試す気になれない。守りに入っちゃダメだねえ人生。
わたしの覚えている限り、XServerへの接続が失敗した場合は、強制的にコンソールログインとなる。T21とかそうだったもんね。だからXServer関係のファイルを壊してやれば・・・ということも考えられる。だがいいわけがない。毎日毎回、エラーメッセージつきの起動なんて・・・・
そこでネットで調べてみた。だが検索語は?
「CDEを使わない」
ねーよ。そりゃ。
「コンソールログイン」
Xのエラーのときコンソールログインして復旧する話が山のようにヒットしてきた。
「モニタレス」
本体だけ売るパソ屋のサイトが山のように。
どーしよ。まあ、あきらめるか?毎回ダメ出し起動に甘んじるか?
それよりまず、「シリアル端末からログイン」のほうを調べてみよう。そっちのほうが早く見つかりそうだ。
「シリアル端末 ログイン Solaris」
・・・いきなりヒットするぢゃねえか!その名も「ディスプレイとキーボードをつながずに使う方法」ダーッ!!
読んでみる。すると、著者の方はさすが大学の先生らしく、のに子のような奥様にもわかるように丁寧な説明が。そうかさっきさんざん空振りしたモニタレス問題はつまり「シリアル端末からログイン」というカテゴリの中にあったのだ。
ていうか要するに、のんのんが要請したのは、UNIXでサーバを使うためのかなり必要の事項だったのか・・・。
2002年2月22日
翌日、隣の部屋に置いたUltraをまずはキーボードとマウスつきで普通に立ち上げ、Bladeからtelnetでログインしコンソール上で操作する。
えーとまずはdtloginを止めることだ。上記のページではrc2.d,
rc1.d, rc0.dにそれぞれあるdtloginの起動・終了スクリプトを消せとおっしゃる。
「/etc/init.dにあるものをハードリンクすればいいから、消しても大丈夫ですヨ」 という感じの書き方だ。
「なくなっても大丈夫」は主婦の好きな言葉のひとつ。きのうは実行権ひとつでドキドキしたこのファイルを安心して消す。
つぎは/etc/default/kbdファイルの修正だ。詳しいことは上記のページをごらんいただくべきだろう。
さて一番問題なのがシリアル端末からのログインだ。/etc/inittabを書き換えるのだという。詳しくはttymonを調べろとのことで調べてみた。どうやら-T
sunというのを-T vt100 と書き換えると、Tera TermのようなPC端末ソフトからの接続の設定になるようだ。書いてみた。
Ultraを一度終了させ、キーボードを抜いて、本体のスイッチから起動させる。少し待って、Bladeからいろいろ利用してみる。問題なさそうだ。
telnetでログインして、Ultraのプロセスを見てみる。Bladeのプロセスも表示させ両者を比較。必要なものは上がっていて、dtloginがない。ただttymonが2箇所表示されているのが気になる。vt100を指定しているのに、今接続してないからだ。探して、見つからないのであきらめたなどの過程を経てはいないだろうか。
2002年2月22日
そこでまたいろいろ調べる。AnswerBookに、inittabの説明がくわしく書いてあるのが今頃見つかった。
今頃でよかった。最初に見つけていたら相当ビビっただろう。
そこにはわたしがさっき書き換えた行について、「このプロセスが失敗した場合はシステムを自動的に再起動します」と説明があったのだ。
わるくすると、サーバは永遠に再起動を繰り返すことになりかねなかったのかも・・・
かなり汗をかいたわたしは、急に小心者になり、もう一度リブートして、もう一度ちゃんと起動することを確かめた。
そのあと、起動時のメッセージも見てみたいと考えた。だが起動時のメッセージを再表示させるのってどーするんだっけ。
gooで調べてみた。ヒットしたサイトに行ってみる。ああなぜかひどい文字化けだ。Netscapeでよくある症状で、あとから文字コードを何にしても文字化けは変わらない。
だが問題は解決した。文字化けだらけの画面の中に
dmsg
という文字があったのだ。そうそう。やってみた。だがSolarisのメッセージがそのまま出るというのではなさそうだ。何のデバイスについてどのデーモンが動いたかのようなことで表示されている。
よくわからなかったが、errorという文字がないから、これで大丈夫じゃないのかな?・・・実は実際にシリアル接続でログインできるかどうかはまだやってない。というのも適当な端末PCが見つからないからだ。わたしが今使っているほぼ唯一のWindowsマシンはシリアルポートなしのdynabookだし。
とにかく、ここになんとかUltraサーバは成立したようで、家計簿なども入力することができ毎日順調に動いてくれているようだ。
2002年2月22日
さてモニタレス・キーボードレスのつもりで稼働してきたUltraサーバだが、ひょんなことから本当に他の端末からシリアルログインできるのか、本格的に確認することにした。
まず、多くの人がやっているように、あの伝説かつ定番かつ万能のWindows版ターミナルソフトTeraTermProを使って、クロスケーブルで接続したWindowsマシンからログインを試みる。だがユーザ名やパスワードを聞きに来てくれない。何の応答もないのだ。
ではSolaris同士ならどうか。ちょうどケーブルの届く範囲にss10がある。両者をつないで、えっと・・・
Solarisからシリアルログインって、どこからなんてコマンド打つの?ていうかそもそも「シリアルログイン」ってrloginやtelnetとどう違うの?!
実はぜーんぜんわかっていなかった。それを一気にわからせてくれたのが
http://www.maitou.gr.jp/install/sol8ia/serialconsole.html
「まいとう」様というお方のこのページだった。実は、以前からこのサイトは検索するたびに上がって来て、何度か開いて見てもいた。だがちょっと前のわたしには、今ぜーんぜんわかっていなかったよりもさらにわかっていなかったのでそもそもそこに書かれてある内容がピンと来なかったのである。だが今回ようやく少し経験や知識を得たので「ここに書かれてあるとおりにするとよいようだ」と思えるようになった。おまけにここには「失敗したときの救済法」まで書いてある。
勇気を出して、ちょっとむつかしいかなと思った部分も我慢して消化して、そのとーりにやったらできた。要は
#eeprom
というコマンドを使って、標準入力をキーボードから、標準出力をscreenから、それぞれシリアルポートに変更するのであった。詳しいことはmanで参照することもできる。
そしてわかった。シリアルログインと言うのは具体的には、ss10のコンソールウィンドウにキーボードから打ち込んだ命令はss10のディスプレイに表示されるが命令そのものはUltra10に行く。そしてその応答はUltra10からss10のコンソールウィンドウに戻ってくる。その経路がシリアルポートからシリアルポートへつながれたクロスケーブルということなのだ。だから起動時にはultra
console login:という文字が、終了時にはhttp stoppedなどの終了メッセージが次々と、ss10のコンソール画面に現れるのである。
そうしてなんとpsionからのログイン、そして操作もできた。端末ソフトはhermesというフリーウェアだ。psionからUltraサーバを終了させることができた。かなり感激である。
それにしても、「標準出力」「標準入力」・・・UNIXの教本には必ず書いてある基礎である。この前さんざお世話になった金野さんのページにも実は初心者向けに親切に解説がされてある。だがこの初心者のくせに目的ばかりでかい主婦は、「ウェブアプリを作りたいわ」「マルチブートしたいわ」「PDAと同期したいわ」などとハデハデなトピックにばかり気をとられ、こういうめんどくてむつかしいが非常に大切なことをキチンと勉強していなかった。大いに反省すべきである。
2002年3月24日