hawkBit swupdate Suricatta: HTTP/1.1 401 Неавторизовано

Я хочу настроить hawkBit (работающий на сервере) и swupdate (работающий на нескольких клиентах - ОС Linux) для выполнения обновления ОС / программного обеспечения в режиме Suricatta.

1 / Следите за моим сообщением в сообществе hawkBit , мне удалось запустить hawkBit на моем сервере, как показано ниже:

  • Экспортировано по внешней ссылке: http://:
  • Включен MariaDB
  • Включена аутентификация токена шлюза (в конфигурации системы hawkBit)
  • Создал программный модуль
  • Загрузил артефакт
  • Создал дистрибутив
  • Приписал программный модуль к дистрибутиву
  • Создайте цели (в пользовательском интерфейсе управления развертыванием) с идентификатором цели "dev01"
  • Создано внедрение
  • Создан целевой фильтр

2 / Мне удалось создать / выполнить swupdate в соответствии с инструкцией SWupdate

  • Включен режим демона Suricatta
  • Запускаем swupdate: /usr/bin/swupdate -v -k /etc/public.pem -u '-t DEFAULT -u http://<domain>:<port> -i dev01'
  • Я почти уверен, что эта команда неверна, выведите журнал, как показано ниже:
      *   Trying <ip address>...
* TCP_NODELAY set
* Connected to <domain> (<ip address>) port <port> (#0)
> GET /DEFAULT/controller/v1/10 HTTP/1.1
Host: <domain>:<port>
User-Agent: libcurl-agent/1.0
Content-Type: application/json
Accept: application/json
charsets: utf-8

< HTTP/1.1 401 Unauthorized
< Date: Sun, 16 May 2021 02:43:40 GMT
< X-Content-Type-Options: nosniff
< X-XSS-Protection: 1; mode=block
< Cache-Control: no-cache, no-store, max-age=0, must-revalidate
< Pragma: no-cache
< Expires: 0
< X-Frame-Options: DENY
< Content-Length: 0
< 
* Connection #0 to host <domain> left intact
[TRACE] : SWUPDATE running :  [channel_log_effective_url] : Channel's effective URL resolved to http://<domain>:<port>/DEFAULT/controller/v1/dev01
[ERROR] : SWUPDATE failed [0] ERROR corelib/channel_curl.c : channel_get : 1109 : Channel operation returned HTTP error code 401.
[DEBUG] : SWUPDATE running :  [suricatta_wait] : Sleeping for 45 seconds.
  • В соответствии с предложением от @laverman на GITTER :
      You can use Gateway token in the Auth header of the request, e.g. “Authorization : GatewayToken a56cacb7290a8d8a96a2f149ab2f23d1”

но я не знаю, как клиент отправляет этот запрос (он должен быть отправлен через swupdate, верно?)

3 / Следуйте этим инструкциям из Tutorial @ EclipseCon Europe 2019, он помогает мне отправить запрос на предоставление нескольких клиентов из hawkBit Device Simulator. И проблема в том, как применить это к реальным устройствам.

Еще одна путаница: при создании нового программного модуля «Распространение» в пользовательском интерфейсе hawkBit я не могу найти их идентификаторы, но создавая с помощью запроса отправки в качестве учебного пособия, я могу видеть идентификаторы в ответе.

Итак, мои вопросы:

1 / Правильны ли мои шаги по настройке hawkBit?

2 / Как я могу настроить / запустить swupdate (на клиентах) для выполнения обновления: опрос нового программного обеспечения, загрузка, обновление, отчет о состоянии, ...

Если мое описание недостаточно четкое, сообщите мне.

Спасибо

1 ответ

счастлив видеть, что вы пробуете Hawkbit в качестве своего решения!

У меня есть несколько замечаний:

  • В suricatta параметр для GatewayToken - -g, а также -k для TargetToken соответственно.
  • В -g <GATEWAY_TOKEN>необходимо заключить в кавычки, см. Пример документации SwUpdate : /usr/bin/swupdate -v -u '-t DEFAULT -u http://<domain>:<port> -i dev01 -g 76430e1830c56f2ea656c9bbc88834a3'
  • Для аутентификации GatewayToken вам необходимо предоставить сгенерированный токен в представлении System Config, это сгенерированный хэш-код, похожий на этот пример здесь.
  • Вы также можете аутентифицировать каждое устройство / клиент отдельно, используя их собственный TargetToken. Дополнительную информацию можно найти в документации Hawkbit.
Другие вопросы по тегам