2012年12月25日火曜日

「App Inventorサーバ仮想マシン公開 By ユーザ会」をいじってみたのでメモ

 本ブログを書き始めて少し経過したので、ユーザ会のブログやFacebookなどを過去に遡りながら状況把握を開始しました(そっちが先だろ、というのはごもっともですが)。

 筆者自身、App InventorはGoogle Lab時代からの付き合いなのですが気に入っていながらもなかなか使えない状況が続いておりました。

 ここへ来てやっと色々と使うことができたということもあり、後れ馳せながらオープンソース化されたApp Inventorソースを追いかけながら何か普及のためにできることはないかと考えているところです。

 ユーザ会のブログを見ていると、本ブログで取り上げていることをすでにご紹介されていたり、5月のオフラインミーティングのustream内でも話題に出ていたようですね。

 WiFiコネクト機能が最近になって正式リリースとなったことでより、快適なApp Inventorライフになっていくものと期待しています。




 さて、本ブログではWindowsローカルな環境でApp Inventorサーバを起動するAI4A-Configuratoinsの紹介やUSBメモリに一式入れてしまおうという試みなどをしていますが、VMwarePlayer仮想マシンによるローカルApp Inventorサーバの公開ということがユーザ会によって行われていることを知りました。

App Inventorサーバ仮想マシン公開

 ただ、この仮想マシンイメージはそのままでは動作させることが出来ないので、


> 既知の問題としては、ネットワークの設定が上手くいっておらず、外部からアクセス
> させることができていません。

とブログにも書かれています。

 という訳で、すでに解決済みであることも想定されますが、一応、こちらで解決方法について触れたいと思います。

1.ダウンロードした仮想マシンイメージのeth0が無効になっている

 クローンとして起動した仮想マシンイメージのeth0はそのままでは動作しないので、以下のファイルを書き換えてみてください。


  • /etc/udev/rules.d/70-persistent-net.rules

このファイルの中にeth0/eth1の2つのインタフェースの記述があると思いますが、eth0側の記述を削除し、eth1側の記述をeth0に変更して保存します(編集はviエディタを使います)。

2.ユーザ環境毎のネットワークの設定を行う


 仮想マシンを動作させるユーザ毎にネットワークの状態は様々ですので、動作確認の段階ではIPアドレスをDHCPで取得した方が良いかもしれません。以下のファイルを設定してください。


  • /etc/sysconfig/network-scripts/ifcfg-eth0

HWADDRは先頭に#をつけてコメントアウトしてください
BOOTPROTO="dhcp" を追加してください
ONBOOT="yes" にしてください

3.ネットワークを有効にする
# service network restart
# ifconfig -a
これでeth0とlo(ループバックインタフェース)が両方存在していてeth0にネットワークIPアドレスが取得出来ていればひとまずネットワークは有効になります。

もし、IPアドレスが取得出来ていない場合は、VMwarePlayerのブリッジ設定のところにある「アダプタの設定」をクリックしてPCの有効なネットワークインタフェースを選択してみてください(これが無効なインタフェースになっているとつながりません)。

しかし、これだけでは同一ネットワーク内からの接続はまだできません。ファイアウォール設定の変更が必要です。

4.ファイアウォール設定の変更

App Inventorサーバはポート番号8888で待ち受けします。このポートはデフォルトではふさがっていますのでこれを開く必要があります。設定ファイルは
/etc/sysconfig/iptables
なので、こちらに次の記述を"--dport 22"という文字を含んだ行の次あたりに加えます。
-A INPUT -p tcp  --dport 8888 -j ACCEPT 

 保存したあと、
# service iptables restart
とすると設定が反映されます。

# iptables -L -n

として、
ACCEPT   tcp    --    0.0.0.0./0      0.0.0.0/0   dpt:8888
という表記があれば設定が反映されています。

これで、rootフォルダのスタート用シェルスクリプトを
 # ./start_ai.sh
で実行すればローカルネットワーク内からApp Inventorサーバにアクセスできると思います。

※ちなみにApp Inventorサーバはポート番号が上記のままなら一般ユーザでも起動できますので通常は一般ユーザ権限で運用した方がよろしいかと思います。

もし、上記でアクセスできない場合は、ファイアウォールを一度完全に停止して確認してみてください。ファイアウォールの完全停止は
# service iptables stop
でできます(が、この状態でインターネットから接続可能な環境には接続しないでください。また、ファイアウォール有効状態であっても公開するには様々なセキュリティ上の配慮が必要なのでこの仮想マシンをそのまま公開することは避けてください)。



0 件のコメント:

コメントを投稿

おすすめ書籍