balena CLI の os configure がエラーになる(Windowsの場合)

 みなさん balenaOS ってご存知ですか?組み込み機器、IoTデバイスなどでDockerコンテナを実行するために最適化されたOSです。通常ですとこれらの機器のイメージを更新するためには、新しいイメージを micro SD などに焼き込んで、現地作業が必要でした。でも balenaOSなら、100%の更新可能性を目標としており、リモートでイメージを更新するための様々な機能が盛り込まれています。便利ですね。FITS でよく依頼を受ける、組み込み機器とWebシステムを組み合わせたシステムの作成時に威力を発揮しそうです!

Windows で使う際は注意が必要

 そんな素晴らしい balenaOS ですが、実際の運用では balena CLI や balena Cloud など、いくつかのツールやサービスと組み合わせて利用します。特に、デバイスの登録やイメージの作成で balena CLI を使うと思うのですが、現時点では

balena os configure

コマンドは、Windowsでサポートされていません。実行すると

>balena os configure --device xxxxxxxx
Unsupported platform error: the 'balena os configure' command currently requires the Windows Subsystem for Linux in order to run on Windows. It was tested with the Ubuntu 18.04 distribution from the Microsoft Store. With WSL, a balena CLI release for Linux (rather than Windows) should be installed: for example, the standalone zip package for Linux. (It is possible to have both a Windows CLI release and a Linux CLI release installed simultaneously.) For more information on WSL and the balena CLI installation options, please check:
- https://docs.microsoft.com/en-us/windows/wsl/about
- https://github.com/balena-io/balena-cli/blob/master/INSTALL.md

というエラーメッセージが表示されますし、公式のドキュメントである
https://www.balena.io/docs/reference/balena-cli/#os-configure-image
にもしっかりと

Note: This command is currently not supported on Windows natively. Windows users are advised to install the Windows Subsystem for Linux (WSL) with Ubuntu, and use the Linux release of the balena CLI

と、サポートされてない旨が書かれています。

 WSL上にUbuntuを入れLinux版の balena CLI を使用すれば問題なく動作します。Balenaでのテストは18.04でなされているようですが、手元環境では20.04 で問題なく動作しました。ただし、事前に Windows 版の balena CLI をインストール済みだと

/mnt/c/Program Files/balena-cli/bin/../client/bin/balena.cmd: 1: @echo: not found
/mnt/c/Program Files/balena-cli/bin/../client/bin/balena.cmd: 2: setlocal: not found
/mnt/c/Program Files/balena-cli/bin/../client/bin/balena.cmd: 4: Syntax error: "(" unexpected (expecting "then")

と、パスが通っているWindows版のコマンドが実行されてしまい、エラーとなりますのでご注意ください。