【发布时间】:2021-05-21 19:48:47
【问题描述】:
我想设置 hawkBit(在服务器上运行)和 swupdate(在多个客户端上运行 - Linux 操作系统)以在 Suricatta 模式下执行操作系统/软件更新。
1/ 跟进my post on hawkBit community,我已经成功在我的服务器上运行了hawkBit,如下:
- 导出到外部链接:http://:
- 启用 MariaDB
- 启用网关令牌身份验证(在 hawkBit 系统配置中)
- 创建了一个软件模块
- 上传了一个工件
- 创建了一个分布集
- 将软件模块分配给分发集
- 创建目标(在部署管理 UI 中),目标 ID 为“dev01”
- 创建了一个发布
- 创建了目标过滤器
2/ 我以SWupdate guideline 成功构建/执行 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 设备模拟器配置多个客户端。问题在于如何将其应用到真实设备上。
另一个困惑是:在 hawkBit UI 上创建新的软件模块、分发时,我找不到这些的 ID,但是通过发送请求作为教程创建,我可以在响应中看到 ID。
所以我的问题是:
1/ 我的 hawkBit 设置步骤正确吗?
2/ 如何配置/运行 swupdate(在客户端)以执行更新:轮询新软件、下载、更新、报告状态,...
如果我的描述不够清楚,请告诉我。
谢谢
【问题讨论】: