Начало работы с комплектом разработчика balenaFin, balenaOS и balenaCloud

balena Fin — это несущая плата для вычислительного модуля Raspberry Pi 3/3+, разработанная специально для промышленного использования услуги по управлению компьютерным парком, предоставляемых Balena. В прошлом месяце мы получили комплект разработчика balenaFin, и в первой части обзора показали, как собрать комплект.

Теперь настало время внимательнее изучить комплект, а также операционную систему на базе BalenaOS Linux, оптимизированную для запуска контейнеров Docker на встроенных устройствах, и службами balenaCloud для управления парком устройств с веб-панели мониторинга.

Следуем инструкциям из руководства по началу работы, которые можно найти здесь и здесь, и будем описывать, что нам нужно было сделать, чтобы подготовить образ, перенести его на плату и загрузить образец приложения Docker локально и через balenaCloud.

Загрузка и настройка BalenaOS для balena Fin

Вы найдете BalenaOS на странице загрузки. Хотя мы используем оборудование на базе вычислительного модуля Raspberry Pi, обязательно выберите «Fin» вместо «Raspberry Pi».

Сначала скачиваем версию «Production» вместо версии «Development», но, оглядываясь назад, лучше сначала перейти на последнюю, объясним позже почему.

Как только мы получим наш файл, мы можем разархивировать прошивку: 

Следующим шагом является установка Balena CLI, инструмента командной строки на основе node.js, используемого для разработки контейнеров приложений на основе balenaOS. Сначала нам понадобится последняя версия node.js & npm, которую мы установим с помощью сценария nvm (Node Version Manager): 

Выйдем из текущего терминала и перезапустим его, чтобы установить узел: 

и, наконец, мы можем установить сам balena-cli: 

Обратите внимание, что нам пришлось запустить две команды chown, чтобы избежать следующих проблем с разрешениями: 

Сначала мы попытались установить npm через apt, но возникли различные проблемы, поэтому рекомендуем придерживаться nvm.

На большинстве встроенных устройств вы можете прошить образ, затем загрузить устройство и настроить все на устройстве, но с BalenaOS все немного иначе. Сначала мы можем настроить образ balenaOS для подключения к сети WiFi, настроить хост-имя платы и отключить постоянное ведение журнала, чтобы продлить срок службы флэш-памяти eMMC с хост-компьютера: 

Нам пришлось добавить env «PATH = $ PATH» в командную строку, иначе команда balena будет найдена sudo. Запуск от имени обычного пользователя также завершится неудачей.

Сохранение balema.img с прошивкой balena Etcher

Теперь, когда наш образ готов, мы можем прошить его через USB с помощью программы balena Etcher GUI. Нам кажется, что установка программы через apt это хорошая идея: 

Но, потом мы поняли, что в настоящее время устанавливается balena Etcher v1.4.9, а прошивка Raspberry Pi CM3 + была добавлена ​​только в версию 1.5.0. Вместо этого мы скачали «AppImage» для Linux x64, чтобы получить последнюю версию v1.5.19 на нашем компьютере.

После подключаем плату к компьютеру через порт micro USB и прилагаемый USB-кабель (для этого шага источник питания не требуется),

Мы можем выбрать образ (balena.img) и должны иметь возможность выбора вычислительного модуля в balena Etcher.

Плата правильно обнаружена. 

Поэтому открываем терминал и запускаем инструмент с помощью sudo: 

и … успех!

Инициализация вычислительного модуля займет несколько секунд, после чего он отобразится как устройство хранения объемом 7,82 ГБ, и мы, наконец, можем щелкнуть «Сохранить», чтобы завершить установку, которая здесь заняла около 4 минут.

Плата не будет работать от USB-порта, поэтому нам нужно подключить ее к предоставленному источнику питания, чтобы она работала, а затем, через несколько секунд, мы можем попытаться пропинговать её: 

Все отлично. Это означает, что плата может автоматически подключаться к WiFi-роутеру. Теоретически, мы также должны иметь возможность подключиться непосредственно к плате через ssh: 

Но, это не сработало: 

Поэтому попробуем альтернативную команду без sudo: 

Но, результат тот же. Изучив проблему, мы обнаружили, что это может работать только с версией разработчика BalenaOS.

Поэтому, повторяем описанные выше шаги с версией разработчика balenaOS и, наконец, нам удается войти в систему и выполнить несколько команд: 

Мы столкнулись с рядом проблем, хотя мы планировали просто установить образ, но, наконец, все установлено.

Запуск контейнера в balena Fin

Теперь мы можем создать копию демо-проекта на нашем хост-компьютере: 

Войдите в каталог и введите команду для сборки и загрузки демо-версии на плату: 

Обратите внимание, что нам нужно использовать IP-адрес вместо хост-имени (т.е. cnxsoft-balena.local).

Вот результат нашей первой попытки: 

Некоторое время ожидания было вызвано проблемой сети, но нам все же пришлось перезапустить команду с DEBUG = 1:

и на этот раз все может закончиться:

Так, ранее, у нас действительно была проблема с сетью. Нажмите здесь, чтобы посмотреть полный журнал.

Приложение создает график средней загрузки ЦП нашего устройства и использования памяти, доступ к которому можно получить в веб-браузере, просто набрав IP-адрес или введя хост-имя в адресной строке.

Управление balenaFin из balenaCloud

Использование balenaCloud не является обязательным, но это действительно удобно, поскольку вы легко работаете с приложением, отправляете его в облако и переносите его на все ваши устройства по беспроводной сети.

После регистрации учетной записи balenaCloud (бесплатно до 10 устройств), нажимаем кнопку «Создать приложение», заполняем имя приложения (например, мультиконтейнер), выбираем тип устройства Balena Fin (CM3), а также запуск приложения перед нажатием на кнопку «Создать новое приложение» .

Теперь нажимаем «Добавить устройство», выбираем версию для разработки, включаем Ethernet + WiFi (если вы планируете использовать WiFi), вводим учетные данные WiFi и нажимаем кнопку «Загрузить balenaOS» . После завершения загрузки мы можем перенести его на плату, как мы это делали ранее. Также есть возможность загрузить файл конфигурации, и, в нашем случае, это могло бы быть лучше, так как ранее мы уже перезагружали ОС. Вероятно можно просто отправить файл в /boot/config.json (через SSH), чтобы обновить плату (TBC).

Теперь мы можем вернуться в наш каталог multicontainer-Getting-Start, который мы извлекли из Github в предыдущем разделе, чтобы загрузить его в нашу учетную запись balenaCloud: 

Где <username> — это имя пользователя вашей учетной записи balenaCloud, а applicationname — имя вашего приложения, определенного на панели инструментов, и в данном случае «multicontainer». Эта команда заняла чуть более минуты и завершилась успешно:

Через некоторое время мы увидим, что наша плата balena Fin обновляется с помощью нашего приложения docker прямо на панели инструментов.

Как только это будет сделано, мы можем нажать на название устройства «Ancient-Tree», чтобы получить доступ к дополнительной информации, и включить «PUBLIC DEVICE URL»

Нажмите на восходящую синюю стрелку рядом с ним, чтобы открыть новое окно браузера, показывающее среднюю загрузку процессора и использование памяти.

Идея с balenaCloud заключается в том, что вы можете добавить все устройства из вашего компьютерного парка, связать их с конкретными приложениями по мере необходимости, и легко прозрачно обновить их все после завершения начальной настройки.

Чтобы продолжить, вы можете изучить документацию, которая поможет вам разрабатывать, развертывать и управлять приложениями в Docker с экосистемой Balena.

Рассмотренный здесь комплект разработчика balena Fin продается в магазине balena по цене 199 долларов США плюс доставка. Если вам не нужен корпус на DIN-рейку, вы можете сэкономить 20 долларов, выбрав вариант «без корпуса».

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.