技術

IDCFクラウドを使ってMeshblu環境を最速で準備する

IDCフロンティアさん企画、主催のサバフェス2016が面白すぎたので、これに参加できなかった方も、さっくりとIoTっぽいことを試して頂けたらなぁ、と思ってます。

てことで、「サバフェス2016には出れなかったけどIoTっぽいことに興味ある方」あるいは「サバフェス2016に出たけどもう一度復習したい方」向けの記事となります。

 

Mesubluについては

myThingsとIDCFチャンネルの使い方を理解してみる(前編)

でも簡単に書いていますが、要は、「IDCFチャンネルをつかってIoTっぽいことをしようとするときの基盤」です。

で、これをイチから準備するのは(多分)大変なんだろうなぁ、と思いますが、IDCFクラウドさんではこのパッケージがインストール済みのテンプレートを準備してくれていますので楽ちんです。

 

スポンサーリンク

仮想マシン作成の手順

仮想マシンのサイズは最小のlight.s1で良いと思います。

IDCFクラウド

 

で、次のところでテンプレートが選べますので「コミュニティテンプレートの一覧へ」をクリックします。

IDCFクラウド

 

そうするといくつか候補が出てきます。ここでは「サバフェス2016年・IDCFチャンネル用」をクリックします。「サバフェス2016年・ハンズオン用」でも大丈夫そうな気はしますが、多分こっちのほうがコンパクトなので。

IDCFクラウド

 

テンプレートの情報が表示されるので、右上にある「仮想マシン作成」をクリックします。

IDCFクラウド

 

元の画面に戻るので、下の方にスクロールします。

で、一番のハマりどころですが、SSHキーを作成しなくてはいけません。

一般にクラウドサーバでは、仮想マシンの作成後、SSHで繋いで作業しますが、このとき、rootのアカウント情報を使ってログインするのは危険なので、SSHキーを作成し、これをローカルに落とした上で、このキーを使ってログインします。

てことで、「作成」をクリックします。

「SSH Key名を入力してください」と書いてあるフィールドに、適当な名前を入力します。ここで入力するSSHキー名は、ローカルに落としてきた時のファイル名になりますので、わかりやすいものが良いと思いますが、ぶっちゃけなんでも大丈夫です。

ここでは、「IoT_MQTT_TEST」という名前にしました。キー名を入力したら「作成」をクリックします。

IDCFクラウド

こんな画面になりますが当然「はい」です。

IDCFクラウド

「はい」をクリックすると、SSHキーが作成されたあと、自動的にダウンロードされます。スクリーンショットはChromeの例ですが、どのブラウザでも大して変わらないはずです。

ここ、以前は明示的にダウンロードする必要があって、ここでダウンロードせずに先に進んでログインできなくなる、とかあるあるだったわけですが便利になりました。思い出したら鼻の奥がきゅんきゅんしてきたよ(ツラかった記憶があるらしい)。

IDCFクラウド

あとは、画面をスクロールして、ホスト名とグループ名(これもぶっちゃけ適当でいいです)を入力したら「確認画面へ」をクリック。

あ、忘れてた。ホスト名にはアンダーバーが使えないです。たぶん。

IDCFクラウド

 

確認画面、一応内容をざっと確認したら、一番下にある「作成」をクリックします。

IDCFクラウド

 

ネットワーク関係の設定

仮想マシンを作成したら、このサーバに対して、ネットワークの設定をしなくてはいけません。

ちょっとだけわかりにくいかもですが、IDCFクラウドでのネットワーク設定(FWとかポートフォワーディングとか)は「IPアドレス」の項目から設定します。

IDCFクラウド

 

順番としては、まずファイアウォールの設定をし、次にポートフォワーディングの設定をします。

ファイアウォールの設定内容はこんな感じです。22, 80, 1883 の各ポートを開けます。

 

IDCFクラウド

 

上記のポートへのアクセスが有った場合に仮想マシンに転送するポートフォワードの設定内容はこんな感じです。3つ設定したポートへの通信は、全て、先ほど作成した仮想マシンに振ります。

IDCFクラウド

 

必須ではありませんが、SSHなどで接続する際にIPアドレスをいちいち確認して叩くのは面倒なので、DNSサーバをお持ちの方は、Aレコード作っておいてやると便利だと思います。

 

SSH接続してみる

Macの場合

OSX の場合には、何らかのターミナルのアプリからSSH接続します。

ここで、先ほどダウンロードしたSSHキーを使います。

まず、IDCFクラウドのポータル画面で、グローバルのIPアドレスを確認しておきます。

今回テストで使った環境の場合は以下のようになっているので、接続先は210.129.19.218となります。

IDCFクラウド

次に認証のためのキーの場所を確認します。ダウンロードしたSSHキーがデスクトップに有るのであれば、接続のためのコマンドは

ssh root@接続先ホストのIPアドレス -i キーの場所

となります。

なので、本稿の例では

ssh root@210.129.19.218 -i ~/Desktop/IoT_MQTT_TEST.txt

 

となります。

初めての接続の際には、下記のように聞いてきますので、Yesと入力します。

The authenticity of host '210.129.19.218 (210.129.19.218)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Are you sure you want to continue connecting (yes/no)?

 

なお、ここで

Warning: Permanently added '210.129.19.218' (ECDSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/tetsuo/Desktop/IoT_MQTT_TEST.txt' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/tetsuo/Desktop/IoT_MQTT_TEST.txt": bad permissions
Permission denied (publickey).

のようなエラーが出るかもです。SSHキーは非常に重要なので、ローカルマシンにログインする他のユーザから見えてしまってはまずいです。なので、

chmod 600 ~/Desktop/IoT_MQTT_TEST.txt

のように、他のユーザからのアクセスを禁止しておく必要があります。

ログインできると、下記のような画面になります。まずはここで一段落です。

Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-33-generic x86_64)

* Documentation: https://help.ubuntu.com/

root@mqtt:~#

 

Windowsの場合

後で書きます

 

 

Meshblu環境の確認

上記の手順で仮想マシンを作成した場合、root のホームディレクトリ下に必要なアプリケーションが入ってます。

root@mqtt:~# ls
iot_apps
root@mqtt:~# cd iot_apps/
root@mqtt:~/iot_apps# ls
meshblu-compose
root@mqtt:~/iot_apps# cd meshblu-compose/
root@mqtt:~/iot_apps/meshblu-compose# ls
bme280 docker freeboard meshblu nginx redis
bootstrap.sh docker-compose.yml manage mongo README.md sensortag

全て、dockerのコンテナに入っているので、Meshbluに対してゴニョゴニョしたいときはこのディレクトリ(/root/iot_apps/meshblu-compose )で作業する必要があります。

 

この時点で既に必要なサービスが全て動いているはずですが、念のため、動作確認します。

まずは単純にCURLで http://localhost/status を叩いてみます。Meshbluが稼働していれば

curl http://localhost/status
{"meshblu":"online"}

のような応答が返ってきます。

 

Meshbluが動いていたら、デバイス(この辺りの用語についてはこちらの記事を参考にしてください)の登録などの初期設定を行います。

 

root@mqtt:~/iot_apps/meshblu-compose# docker-compose run --rm iotutil register

出力結果はこんな感じになります。

1__root_mqtt____iot_apps_meshblu-compose__ssh_

 

これで、デバイスも登録されたはずなので確認します。

root@mqtt:~/iot_apps/meshblu-compose# docker-compose run --rm iotutil list

出力結果はこんな感じ。

1__root_mqtt____iot_apps_meshblu-compose__ssh_

 

これで、Meshblu環境が整いました。

クライアントからの確認などについては、別記事で説明しています。

 

 

関連記事

  1. 技術

    myThingsとIDCFチャンネルの使い方を理解してみる(MQTTで繋いでみる編)

    今回は、実際にMeshbluに繋いでみて、挙動を確認してみたいと思いま…

  2. Raspberry Pi

    myThingsとIDCFチャンネルの使い方を理解してみる(前編)

    IDCフロンティアさんが企画、主催されている、サバフェス2016に出て…

  3. 技術

    IDCFクラウドにVPNでリモートアクセス ~Windows10でL2TP編~

    気がついたら3ヶ月弱ブログを放置してました。いなばです。…

  4. メモ

    WordPressのお引越しに All-in-One WP Migration がめっちゃ便利すぎる…

    今後、WordPress環境のお引越しだったり各サービスの比較をする際…

  5. ガジェット

    iPhoneやAndroidでの通話内容を録音できる!テレホンピックアップTP8がオススメ

    突然ですが、プライベートで通話内容を保存しておく必要ができてしまいまし…

  6. ガジェット

    LINE WAVEの誤認識について考えてみる

    ここ数日、リビングにLINE WAVEを置いて暮らしているんですが、た…

コメント

  1. この記事へのコメントはありません。

最近の記事

おすすめ記事

  1. Raspberry Pi

    Raspberry Pi 2 インストールメモ
  2. こどもとスマートフォン

    こどもにLINEを使わせる際の設定について
  3. ガジェット

    【レビュー】LINE WAVEがやって来た!
  4. 技術

    IDCFクラウドにVPNでリモートアクセス ~ Pertino 編~
  5. こどもとスマートフォン

    こどもにiPhoneをプレゼントしたときに約束したルール
PAGE TOP