技術

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. Raspberry Pi

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

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

  2. ガジェット

    リビング使いを前提にスマートスピーカー3機種を比較レビュー!

    我が家にスマートスピーカーが3機種揃ったので、色々比べてレビューしてみ…

  3. ガジェット

    LINE WAVEについてつらつらと考えてみる

    LINE WAVEを買って昨日からリビングにおいてみつつ、これってどん…

  4. 技術

    OneDrive for Businessでフォルダを選択して同期できるようになった件

    世間ではAmazonさんのオンラインストレージの話が盛り上がっ…

  5. 技術

    vmware serverを vmware ESXi に移行する

    結局今週末は丸々この作業にあてた感じ。まぁ、他のこともしながら、深夜だ…

  6. 技術

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

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

コメント

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

最近の記事

おすすめ記事

  1. Raspberry Pi

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

    IDCFクラウドのCentOS7でSwapを使う
  3. ガジェット

    iPhoneやAndroidでの通話内容を録音できる!テレホンピックアップTP8…
  4. ガジェット

    MacBook Air 11インチ用に3Mのセキュリティ/プライバシーフィルター…
  5. 音楽

    Arabaki 2017 行ってきたメモ
PAGE TOP