IoTゲートウェイとして工場等でよく用いられるArmadillo-IoT G3L(以降、G3Lと記載)のミドルウェア層の管理と更新をisaaxを使って行う方法をご紹介します。

IoTプロダクトの構成要素にはファームウェアやソフトウェアだけでなく、OSやシステムパッケージが存在し、これらの更新やメンテナンスは手間がかかります。しかし、この手間のかかる下位レイヤーの更新はisaaxを使えばgit pushするだけで簡単にできます。

今回はHeartbleed(OpenSSLの脆弱性)のようなインシデントが発生し、運用中のG3L内部のOpenSSLのアップデートを行うという仮定でご説明いたします。

 

0.初期状態の確認

まずはG3Lにログインして現在のOpenSSLのバージョンを確認します。

root@armadillo:/var/isaax/project# dpkg -l |grep -w openssl
ii  openssl                        1.0.1e-2+deb7u20                  armhf        Secure Socket Layer (SSL) binary and related cryptographic tools

この場合、バージョンは1.0.1e-2+deb7u20です。

1.isaax-agentをG3Lにインストールする

クイックスタートを参考にisaax-agentをG3Lにインストールします。

必要物:

・Githubのアカウント
・Githubのリポジトリ
・Gitクライアント
・Armadillo-IoT G3L

 Githubのリポジトリは何でも良いのですが、初めてisaaxを使う方はjackfrostwillbeking/script_testのサンプルコードをForkしていただければ、本記事のサンプルプログラムをすぐに動かせます。ちなみに、Githubの代わりにBitbucketを使うこともできます。

必要物がそろったらisaaxにユーザー登録します。

事前に準備したGithubのアカウントでログインすると後々、楽になります。

isaaxにログインしたら、プロジェクトを作成します。

 

リポジトリはGitHubにあるリポジトリがプルダウンリストで表示されるので、適宜選択してください。

 

(もしisaax-agentのインストールについてご質問やご意見があれば、isaax campへお問い合わせ下さい。)

isaax-agentがインストールされたデバイスであれば、簡単にインターネット越しにスクリプトを実行したりソースコードをデプロイできるようになり、リモートでのIoTデバイス管理を大幅に効率化できます。

2.スクリプトを設定する

 

isaax-agentのインストールが終わったら、OpenSSLアップデート用のコマンドを仕込みます。
isaaxにログインし「プロジェクト」->「クラスター」->「クラスター設定」->「スクリプト」と進んでください。

 

 

3種類スクリプトがあるのは実行タイミングによる使い分けのためです。詳しくはスクリプトのドキュメントをご覧ください。

今回はプログラムがアップデートされる前に実行するために、pre-update-template.shを編集します。

 ※今回は–force-yesオプションを入れないと-yオプションが機能しませんでした。通常は-yだけで良いと思います。

タイムアウトは少し長めに300秒で設定しました。もし足りなければ伸ばしてください。

 3. スクリプト実行

今回の場合はgithubのjackfrostwillbeking/script_testに更新がかかった時にスクリプトが実行されます。

試しに、リポジトリのREADME.mdファイルに適当な文字を追加してコミットしてみましょう。

G3L側で/var/log/isaax-agent.logをtail -fしていると下記ログが流れるので、スクリプトが実行されたかどうかを確認できます。

/var/log/isaax-agent.log:{"level":"debug","msg":"running script","script":"pre-update","time":"2018-03-09T16:28:33+09:00"}

4.結果の確認

さて、ちゃんと更新されたかどうか確認してみましょう。

まずはG3Lにログインして現在のOpenSSLのバージョンを確認します。

root@armadillo:/var/isaax/project# dpkg -l |grep -w openssl
ii  openssl                        1.0.1t-1+deb7u3                  armhf        Secure Socket Layer (SSL) binary and related cryptographic tools

バージョンが1.0.1e-2+deb7u20から1.0.1t-1+deb7u3に上がったことが確認できました。

 

 

以上、isaaxを使ったG3Lのミドルウェアのアップデートはいかがでしたでしょうか。

 

 

ご意見やご質問があればisaax campまでご連絡ください。
また、isaax-agentを使った勉強会を定期的に開催しておりますので、ぜひご参加ください。


Leave a Reply

Your email address will not be published. Required fields are marked *