スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Expectをどう使うか

だいぶ前からExpectについて興味があったんだけど、別の事ばかりしてて気付いたら夏ですよ。

そんなわけでいまさらExpectなんですが、対話式のプログラムが組める言語。言語?・・・多分言語だったと思う。
まぁその辺は気にせずに。

んで何をしたいのかというと、複数台のサーバーに同じコマンドを投げて実行させて、その結果を取得したいという感じ。

色々と運営していくとサーバーが増える一方で、保守が大変になるという事態に陥ります。
定期的にログインパスワードを変えようとかって時も50台全部にログインして同じコマンドを打つなんて面倒すぎだし、参照させるDNSのIPが変わったとか、ログインを許可するユーザーに変更があったとか。

とにかくそういった類の事を一発で実行させたいんです。
PHP+libssh2で試した事はあるんですけど、不安定だったし、libssh2はPECLで開発されててあまりメンテナンスもされてない感じなので、Expect+PHPとかExpect+Pythonみたいな構成を考えてみるわけです。

一応、そういう事を可能にする為にRubyベースの「Capistrano」や(多分)Perlベースの「Archer」ってのがあります。
Capistrano
http://naoya.g.hatena.ne.jp/naoya/20060928/1159437059

Archerを作ってる会社の中の人だと思われるはてなダイアリー
http://d.hatena.ne.jp/tokuhirom/

で、探したらPHPにはExpectの拡張関数もあるし、Python+Expectのサンプルなんかもあった。
ただ、これまでCLI用に作ったPHPスクリプトはなんかイマイチ。
自分のコーディングとかに問題があるのかもしれないけど、なんかカッチリしてない。
コマンドラインで使うスクリプト=Linuxのファイルを操作したりするから、いつも以上にカッチリさせたい感がある。

とかいいつつも既にうちの会社では「Capistrano」を使ってる。

同じものを使うのはつまらないし、かといってPHP?となると微妙だし、Perlだと既にArcherというのがあるし、じゃあPythonで作ってみようかという結論。

もしCapistranoより良さそうな感じになったらうちの会社にこっそり導入してみようかな。
スポンサーサイト

この記事のトラックバックURL

http://kgworks.blog47.fc2.com/tb.php/146-d8db7a38

コメント

コメントする

管理者にだけ表示を許可する

Template Designed by DW99

テクノラティ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。