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.