RasberryPI を管理するResin.io っていうWebサービスがあるみたい。
https://resin.io/

このへんを参考にしてさっそく試してみました。
https://docs.resin.io/introduction/
https://docs.resin.io/raspberrypi/nodejs/getting-started/

ためしてみる

■ログイン
ユーザー認証はGitHubアカウントがあれば大丈夫。
GitHub経由でデプロイするためにGithubのSSHの公開鍵を要求されます。

認証後、ダッシュボードが開くようになります。


■Application を作成します。
resin.io では 管理対象となるデバイス群をAplicationという単位で管理するようです。
Application を作成します。

作成時にApplication名とデバイスの種類をしているす必要があるようです。
てことは、Application単位でデバイスの種類が固定されるってことなのね。。。

■ImageをDLします
Applicationを作成するとImageのDLボタンが出てきます。
このImageをDLして デバイスにインストールします。


Wifi用と Ethanet 用のd知らかを選択しろって言われましたが
LANケーブルを使う予定ですので Ethanet 用を選択しました。

■DLしてきたImageをDeviceにインストールします。
RasberryPIに入れるためSDカードにImageを焼く必要があります。
Windowsだったらこんなソフトを使い、SDカードに焼くことができるようです。
https://sourceforge.net/projects/win32diskimager/

焼きます。

■デバイスをインターネットにつなげます
インストールできたデバイスをネットワークにつなげて電源を入れます。

■しばらく待つ
しばらく待っていると ダッシュボードにデバイスが出現します!
なんかすごい!

■Hello world
RasberryPIではない 開発用PCで以下のコマンドをたたきます。

$ git clone https://github.com/resin-io-projects/simple-server-node.git
$ cd simple-server-node
$ git remote add resin <リポジトリ>

リポジトリはダッシュボードの以下部分を参照して下さい

しばらく待つとアプリケーションのダウンロードが勝手に始まります。

ダウンロードが終わったら、ダッシュボードからURLを確認。

URLにアクセスしてみると・・・でてます!



まとめ

■ダッシュボードがおもしろい
デバイスの場所(IPアドレスから推測?)
デバイス内にアクセスできるターミナルなどいろんな機能がついてました
面白い。

■Imageに縛られる
OSは resin からDLしたものを使わないといけないよう。
ちょっと自由度が低いかも。

■コンテナのポートフォワードはしてないみたい
Dockerコンテナとしてアプリケーションをデプロイするようですが
そもそもコンソールからターミナルを使う想定のようで
デバイス上のコンテナに直接アクセスはできないみたい。

ルータの下にRaspyを接続してたのですが
外部向けにポート開けてないのに https でアクセスできちゃう。
名前解決もresinのほうでしてくれるみたい。

なんかすごいぞ。

■ちょっとお高い
https://resin.io/pricing/
25デバイスまで 月々60ドル。ちょっと高いなぁ。



興味のある方は是非試してみてください。