OS Xでシェルスクリプトをアプリケーション化する2009/06/19 15:54

特定のIPアドレスに対してだけデフォルトゲイトウェイではないルータをゲイトウェイに指定するためにスタティックルートを追加することは、日常ありふれたことではないが、特定の関係先や協力会社などとの接続のために利用することがないわけではない。

こういった場合では、通常デフォルトゲイトウェイのルータにその設定を施すことが普通だが、今回の案件では特定の利用者が使用する端末以外からは、そもそもこの裏口に到達させたくないので、特定の端末にだけスタティックルートを切ることになった。

Linux なら追加した経路情報は再起動してもそのまま有効だし、Windows でも route add コマンドに print オプションを追加してあげれば覚えさせることができる。ところが、ターゲットの端末はすべて OS X 10.5 の Macintosh である。困ったことに OS X の route コマンドの場合、再起動をかけると追加した経路情報をきれいさっぱり忘れてくれる。覚え込ませる機能が備わっていない。

このこと自体はかれこれ4〜5年前、10.3あたりの頃から知っていたが、その頃の Apple のサポート情報には「今のところはrc.common だったかの中に経路情報を追加するスクリプトを追加してしのいでください」といった、昔ながらのBSD風な対応策が紹介されていた。そのことが頭にあったので今回あらためてそのドキュメントを探したが見つけることができなかったし、10.4以降、システム起動時にプロセスを自動起動させる方法が rc スクリプトではなく /Library/StartupItems/ というディレクトリの下に個々の起動スクリプトを配置する方法に変更されているため、かなりやり方が変わってしまった。(Linux の /etc/init.d/ のやり方とよく似ている)

経路情報追加のスクリプトなんてそれこそ1行だけですむ話なのだが、一緒に記述しなければならない StartupParameters.plist という奴の記述方法がよくわからない。BSDでずっとやってきていて、このスタイルの変化にも対応してきた人々にとっては何でもないことなのかもしれないが、普段馴染みのない内容なので、あせって色々検索して試行錯誤してみたがどうも上手くいかない。何度書き直しても「記述内容に間違いがある」ために起動させることができない。
(このあたりについてはMAC OS XでのOS起動時の自動起動その他を参考にした)
しかたないので、シェルスクリプト自体をアプリケーション化して、個々のユーザに配布することにした。

これも以前だったらApple Script で Do shellscript ... とでも書くのだろうが、最近ではAutomatorというロボット君が提供されていて、「スクリプトを実行」というアクションが用意されていた。このアクションのパラメータとして sudo route add xxx.xxx.xxx.0/24 yyy.yyy.yyy.yyy と書いて「アプリケーションとして保存」を選べばいいことがわかった。

この点についても sudo がミソで、sudo なしだとパーミッションエラーでエラーになる。しかしこれも変な話なのだが、Automator で作った sudo つきのスクリプトではパスワード入力が不要なのである。ターミナルを開いてこのスクリプトを実行すれば、システムの設定をいじる命令なので当然パスワードを訊いてくる。それなのに Automator で作った場合には四の五の言わずに黙って実行してくれる。これはセキュリティ的にどうなんだろうかといささか疑問が残った次第である。

それはそれとして、アプリケーションで対応といった当座の妥協策で放置しておくのもおもしろくないので、継続して追いかけてなんとかするつもりではある。

いんふら屋2009/04/29 08:54

とあるお客さん先で最近引退した方によると、コンピュータ業界では大雑把に、OS屋、アプリケーション屋、インフラ屋というタイプ分けがあるそうだ。

そのお客さんはばりばりのOS屋さん。学生運動でまともな会社に就職できずに、当時とてもうさんくさかった日本 IBM に潜り込み、日本で2台目の Systen 360 のお守りをしたそうだ(これって業界的にはものすごい経験だと思う)。で、彼は OS屋さん。EBSDICがJISとやりとりするのに結構めんどうなのも「俺たちのせいだよ」と言っていた。その他いろいろ勉強させてもらった。

で、彼に言わせると私は「見るからに」インフラ屋さんだそうだ。ま、確かに、つなげることが面白く、正直つながったらあとはご随意にということが多い。

ビジネスとしては本当はつながってからが大問題なのだが、つながったその上で誰かが何をするのかあまり興味が出てこない。それはそっちが得意な人にお任せである。得意な人が同じ会社にいるからそれでバランスが取れているとも言えるが、こんなこと書いている最中に気づいた。その得意な人と一緒のプロジェクトは今までない。

それで今までよく給料が出ていたと思い返せば冷や汗タラタラである。

Mac mini というか Apple Keyboard がいいのか2009/04/29 07:31

Apple が嫌いな人にはどうでもいい話かもしれないけれど、Mac mini はいい。確かに初代の頃と比べると結構お高くなったんだけれど、それでも16年くらい前にはじめて買った LC-520 + Style Writer II で30万円オーバーから考えると、昔の金返せという気持ちになるくらい安い。(その後、LC PDS に差す 68040/40MHz のボードを差したり、RAM Doubler を RESedit でメモリを32MBあることにしたりその他諸々、もう1台分くらいは多分金を食いました)

こいつに Parallels なり VMware を入れれば、PCで動くOSはたいてい問題なく動くので、各種検証用には問題なし。

各種メーカーが激安で広告しているけれども、結局メモリやディスクを足していくと Mac mini より下手をすると高くなってしまう。

で、Ma mini そのものではないけれども、一緒に買った 10キーなしの Apple Keyboard がいいです。見た目、「こんなペラペラで大丈夫か?!」という外見です。昔の IBM 5576 キーボードとか最近だと東プレ、HKKあたりのそれなりのものとキータッチは全く違うけれども、こんなに浅いキータッチでも快適に叩けるんだなと関心です。(MacBook特有だと思ってましたが)

最近は基本ノートパソコンなので10キーはなくても構わないし、このタイプが多分主流になっていくと思う。

ま、PC を使う場合、やっぱり「どこかに 5576 はないか〜!」と心の中で叫んでしまいます。

Mac Miniを買ってしまった2009/04/29 06:59

お客さんに提案するための確認として Microsoft の Small Business Server の評価をしなければならなくなったが、手元に動く環境がない。
Apple Store Ginza に走ってとりあえず Mac Mini 2.0GHz, 4GB, 120GB を購入し Paralleles を突っ込んだ。Mac Mini を買いにいっている間に MS からダウンロードした SBS の評価版のインストーラを走らせたが、メモリ4GB・ディスク60GBが必須だそうでインストール不可と蹴られてしまった。実メモリが4GBしか(しかかーッ!!)ないのでどうかと思ったが、とりあえず仮想マシンに4GB割り当ててみたが、インストーラを走らせてみたら、動くものの多分3日くらいかかる勢いなので断念。
以前から持ち歩きマシンの MacBook 以外に据え置きのマシンが欲しい欲望がつのっていたので、それはそれでいいのだが、本来の目的は果たせず。

とりあえず2003の仮想マシンにExchange Server の使用版を乗っけてみることにする。一応、Exchangeの動作確認が本来の目的なのでそれでなんとかなると思うが、やっぱり Technet くらいは契約した方がいいんだろうな。(社長いかがでしょうか?)

あ、Windows のためになんで Mac なんだという突っ込みはなしでお願いします、Mac の上で Windows を動かす手は Paralleles や VMware Fusion でできるんですが、逆はできないので私の業務環境としてはこっちがベターということなんです。お手軽に逆ができ、お安くあがればそっちに流れるのは全く抵抗ないんですが寡聞ながらそのような手だては知らないもので...