[ADP開発日誌]0.61リリース OpenBlocks600D対応+WOL(Wake On Lan)

以前に、ADPをOpenBlocks600Dに対応させた話を書きましたが、予告(?)どおりADP 0.61のリリースを行います。ブログビューワーの方は後ほどということで・・・必要な方はコメント欄にほしいとリクエストください(気持ち急ぎます)。
 
OpenBlockS600Dのバイナリ版を実行させる場合は以下のパッケージがインストールされている必要があります。
  • libboost-regex1.35.0
  • openssl
  • unixodbc

場合によっては(ソースからコンパイルされる方は)さらに以下のパッケージが必要です。
  • libboost1.35-dev
  • libssl-dev
  • unixodbc-dev
 
ちなみにWindows版のバイナリは、特に依存関係はないので、そのまま実行できます。
 
0.60でパフォーマンスを上げたのですが、バグがぼろぼろ出まして修正しました。だいぶ品質が向上したかと思います。もっとも、もっと本格的なテストプログラムを記述しないとダメだと思いますが・・・そのノウハウの蓄積は今後に期待ですね・・・。
ただ一部の修正(メモリの管理関係)でパフォーマンスが下がったのでこのあたりはまた変更する必要があります。オープンソース&マイナープロジェクトの良いところはバグを恐れずにガシガシ修正できるところですね、お金を頂戴するプロジェクトではここまで冒険はできません・・・。
 
また、今回のリリースではwol(Wake On Lan)述語(関数)も追加しています。文字通りWOLパケットを送出する述語です。
何でこんな述語を追加したのかと言いますと、前回の記事のとおり最近モバイル環境を構築したのですが、これに加えてVPNを構築すると外部からイントラ環境にログオンすることができ、そうするとリモートディスクトップで私のマシンにログオンしたくなるのですが、ログオンするためには電源が入っていなければならず、とは言っても何時ログオンするかどうか解らないマシンの電源を入れっぱなしにする訳にもいかない、という訳でWOLで電源を入れることになり述語を追加しました。
WOLを送信するマシンは、LED電球並の消費電力のOpenBlocks600Dにすればよろしいでしょう。外部からはウエブから入るようにします。つまりブログビューアと同様にADPでWEBページをホストします。
というわけで、以下、WOLのコードになります。
 
wol.awp
#!/bin/adp -
<%;
+keycode("password");	# パスワードを指定
+machines("00-11-22-33-44-55", "machine1");	# MACアドレスとマシン名(適当でよい)を指定
+machines("66-77-88-99-aa-bb", "machine2"); # 複数あるときは同じように複数行にわたって記述する
+baddr("192.168.1.255"); # ブロードキャストアドレスを指定
,query("KEY").keycode, $mac =query("MAC"), wol($mac, =baddr);
%>
<html>
<head>
<meta http-equiv="Content-Language" content="ja">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ネットワークブート</title>
</head>
<body>
ネットワークブート
<%,query("MAC",$mac),%><%=$mac%>BOOT中<%;%>
<br>
<form action="wol.awp" method="post" OnSubmit="return confirm('起動しますか?')">
キーコード:<input type="text" name="KEY" value=""><br>
起動マシン:
<select name="MAC">
	<%,machines($mac, $name) ,%>
		<option value="<%=$mac%>"><%=$name%>
	<%,next;%>
</select>
<input type="submit" value="boot">
</form>
</body>
</html>
※2012/05/21 Ver 0.81のリリースにあわせて更新
 
ファイル名はwol.awpとします。form actionの引数を変えればファイル名自体はなんでも構いません(まぁ解らないようにした方がよい)が、拡張子はawpにする必要があります。
awpとは「Adp Web Page」の略で、ADPでWEBページをホストするモード(AWPモード)の拡張子になります。
Ver0.61では、拡張子がawpまたはcgiのみAWPモードになります。
 
これをApacheでcgiスクリプトとして、ホストすればOKなのですが、その前にスクリプト使い方の説明を、
先頭の3行目から6行目が設定になります。最低限のセキュリティということで、
パスワードの指定(3行目)と起動対象のマシンのMACアドレスと名前(4,5行目)と
起動対象のマシンがあるブロードキャストアドレスを指定(6行目)になります。
 
スクリプトの動作環境の設定ですが、PerlやPHPのCGIと同様にセットアップして頂けれたよいのですが、以下、apacheでのセットアップを簡単に説明します。
adpの実行ファイルを、/bin に保存します。/binがダメな方は、上記のスクリプトの1行目でadpのパスを指定します。
apacheのconfファイルですが、DirectoryのOptionsにExecCGIを追加し、AddHandlerで .awpを追加します。
以下、サンプルを載せます。
    <Directory "/var/www/html">
        Options FollowSymLinks ExecCGi +Includes
        DirectoryIndex index.html index.php index.awp
        AddHandler  cgi-script .awp
        AddHandler  cgi-script .cgi
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

Windows+IISでも動作可能です・・・設定方法は・・・まぁがんばってみて下さい。
(ご要望がありましたら設定方法を記載します・・・)
2011-02-18 | コメント:0件

コメントをどうぞ


『不適切なコメントへの対応』を一読下さい。
現在コメントは承認制となっております。

Previous Page | Next Page