当前位置: 首页 > news >正文

[sys-BlueChi] docs | BluechiCtl命令行工具

链接:https://github.com/eclipse-bluechi/bluechi

在这里插入图片描述

docs:BlueChi

Eclipse BlueChi 是面向多节点分布式环境systemd服务控制器

  • 它由管理多个分布式代理中央控制器构成。

  • 用户主要通过bluechictl命令行工具进行交互,该工具向中央控制器发送命令。

  • 中央控制器指示代理,代理进而与本地systemd交互以管理单元(服务/程序)。

BlueChi追踪节点(运行代理的机器)和作业(对单元的操作)状态。

  • 组件间通过*D-Bus API*进行通信。

  • 监控功能允许观察状态变更代理服务支持跨节点单元依赖。

  • 行为通过*配置*定义。

概览

在这里插入图片描述

章节

  1. BluechiCtl命令行工具
  2. BlueChi控制器
  3. BlueChi代理
  4. 单元/服务
  5. 节点管理
  6. 作业系统
  7. D-Bus接口
  8. 监控机制
  9. 代理服务
  10. 配置管理

配置

在这里插入图片描述

1. 安装 Docker

如果系统还没有 Docker,可以用以下命令安装:

sudo apt update
sudo apt install docker.io
sudo systemctl enable --now docker

查询
在这里插入图片描述

2. 构建 Docker 镜像

在 BlueChi 项目根目录下执行:

docker build -t bluechi-deb-build -f debian/bluechi-deb-build .

3. 运行 Docker 容器并挂载 BlueChi 目录

假设当前在 bluechi 目录下,执行:

docker run -it -v $(pwd):/var/bluechi-build/bluechi bluechi-deb-build /bin/bash

这样会把本地的 bluechi 目录挂载到容器的 /var/bluechi-build/bluechi

4. 在容器内创建源码包

进入容器后,执行:

cd /var/bluechi-build/bluechi
./build-scripts/create-archive.sh
mv bluechi-<version>.tar.gz ../bluechi_<version>.orig.tar.gz

<version> 替换为实际版本号。

5. 在 BlueChi 目录下构建 deb 包

继续在容器内执行:

meson setup builddir
dpkg-buildpackage -uc -us -rfakeroot

6. 获取生成的 deb 包

生成的 .deb 包会在 /var/bluechi-build 目录下。可以在主机的 bluechi 目录下找到它们。


第1章:BluechiCtl命令行工具

欢迎来到BlueChi!

在本章中,我们将认识bluechictl工具。

可将bluechictl视为与BlueChi系统交互的主要工具,就像远程控制器一样。这是我们用来向BlueChi发送指令并获取信息的命令行程序

类似cli前文传送:[Backlog] 命令行界面CLI vs Web界面及服务端

什么是BluechiCtl?

假设我们拥有多台互联的计算机或设备,并希望从中央位置统一管理这些设备上运行的程序或服务。这正是BlueChi的设计目标!

但如何与BlueChi沟通

这就是bluechictl的作用所在。它是系统的接入网关,将我们的指令(例如"在指定设备上启动某程序")发送给BlueChi的核心管理组件——BlueChi控制器,同时接收控制器返回的信息并呈现给我们。

简而言之,bluechictl是我们用来实现以下功能的命令行接口:

  • 向BlueChi控制器发送指令
  • 查看BlueChi管理的设备与程序信息

查看BluechiCtl版本

验证命令行工具是否安装的最简单方式通常是检查版本号。使用--version-v选项即可实现:

bluechictl --version

该指令会让bluechictl工具报告其版本号,快速确认程序是否可正常执行。

(基于test_version_option_provided.py测试用例,此命令应输出版本信息)

首个任务:检查设备状态

管理多设备时,常见需求是确认设备的在线状态。在BlueChi中,受管设备称为节点。

通过status命令,bluechictl可轻松检查节点状态。

查看所有节点状态

要查看控制器管理的所有节点状态,只需执行:

bluechictl status

输出将展示节点列表、当前状态(如online在线或offline离线)及最后活动时间。

示例输出如下(具体节点名称取决于实际配置):

节点                          | 状态      | 最后活动时间
=========================================================================
laptop                        | online    | 刚刚
pi                            | online    | 刚刚

(此输出示例参考自test_bluechi_nodes_statuses.pyexamples_bluechictl.md)

查看特定节点状态

若只需检查指定节点状态,可在status后附加节点名称:

bluechictl status pi

此指令仅显示名为pi的节点状态:

节点                          | 状态      | 最后活动时间
=========================================================================
pi                            | online    | 刚刚

(此功能演示参见test_bluechi_node_status.pyexamples_bluechictl.md)

使用bluechictl statusbluechictl status <节点名称>是了解分布式系统运行状态的首要步骤。

BluechiCtl工作原理简析

当您在bluechictl输入指令时,系统内部如何将指令作用于远程设备上的程序?以下是简化版流程解析:

  1. 用户输入指令(如bluechictl status pi
  2. bluechictl工具将请求发送至BlueChi控制器(通常与控制器同机部署)
  3. 控制器查找目标节点(pi)
  4. 控制器向pi设备上的BlueChi代理发送消息
  5. 代理检查本地系统(如systemd)获取状态信息
  6. 代理将状态信息回传控制器
  7. 控制器将信息转发至bluechictl
  8. bluechictl在终端显示状态信息

以下序列图直观展示该流程:

用户BluechiCtlBlueChi控制器BlueChi代理(节点)Systemd输入指令(如status pi)发送节点状态请求请求pi节点状态检查本地系统状态返回状态信息回传状态信息转发至工具终端显示状态用户BluechiCtlBlueChi控制器BlueChi代理(节点)Systemd

此交互过程展示了bluechictl如何作为用户友好前端与BlueChi系统组件协同工作。

BluechiCtl更多功能

除检查节点状态外,bluechictl可通过向控制器发送不同指令,实现对远程节点上程序/服务(BlueChi称为单元/服务)的多样化管理。

常用指令示例:

  • bluechictl list-units [<节点>]:列出所有/指定节点的程序服务(参见test_bluechi_list_units_on_all_nodes.py等测试用例)
  • bluechictl start <节点> <单元>:在节点启动指定服务(参见test_bluechi_restart_unit.py等用例)
  • bluechictl stop <节点> <单元>:停止节点上的指定服务(参见examples_bluechictl.md
  • bluechictl daemon-reload <节点>:让节点systemd重载配置文件(参见test_bluechi_daemon_reload.py
  • bluechictl reset-failed [<节点>] [<单元> ...]:重置服务的失败状态(参见test_bluechi_reset_failed.py等用例)
  • bluechictl kill <节点> <单元>:向服务进程发送信号(参见test_bluechi_kill_unit.py
  • bluechictl enable/disable <节点> <单元>:设置服务开机自启(参见test_bluechictl_is_enabled.py
  • bluechictl reload <节点> <单元>:重载运行中服务的配置(参见test_bluechi_reload_unit_service.py
  • bluechictl get/set-default <节点> <目标>:获取/设置节点默认systemd目标(参见test_bluechictl_set_get_default_target.py
  • bluechictl set-loglevel [<节点>] <级别>:调整控制器/代理日志级别(参见test_bluechi_agent_set_loglevel.py等用例)

无需立即记忆所有指令!关键要理解bluechictl是操作BlueChi系统的主要方式,无论是查询状态(status, list-units)还是执行操作(start, stop, reload等)。

本章小结

本章我们了解到bluechictl是与BlueChi系统交互的核心命令行工具。我们学习了如何用它检查版本信息,更重要的是掌握了节点状态检查方法,并初步理解了bluechictl与BlueChi控制器的通信机制。

现在您已掌握主控工具bluechictl的基础用法,接下来让我们深入了解其通信对象——BlueChi控制器。

第2章:BlueChi控制器

http://www.xdnf.cn/news/1381429.html

相关文章:

  • 滑台模组如何实现电子制造精密加工?
  • Java 大视界 -- 基于 Java 的大数据实时流处理在智能电网分布式电源接入与电力系统稳定性维护中的应用(404)
  • 零基础开发应用:cpolar+Appsmith平民化方案
  • HVV面经总结(二)
  • MySQL事务ACID特性
  • 内网穿透工具【frp】的核心功能底层处理逻辑解析
  • Linux部分底层机制
  • LeetCode-279. 完全平方数
  • Linux 软件编程(十三)网络编程:TCP 并发服务器模型与 IO 多路复用机制、原理epoll
  • 工业机器人如何通过Modbus TCP转CanOpen网关高效通信!
  • HTML贪吃蛇游戏实现
  • RAW API 的 TCP 总结2
  • 鸿蒙Harmony-从零开始构建类似于安卓GreenDao的ORM数据库(四)
  • 刷题日记0828
  • 未来模型会转向多模态吗
  • Logstash数据迁移之mysql-to-kafka.conf详细配置
  • 领悟8种常见的设计模式
  • 导入文件允许合并表格
  • HBase Compaction HFile 可见性和并发安全性分析
  • audioMAE模型代码分析
  • 流程控制语句(3)
  • 帕萨特盘式制动器cad+设计说明书
  • 【C语言16天强化训练】从基础入门到进阶:Day 13
  • week5-[一维数组]归并
  • 公共字段自动填充
  • 云计算学习100天-第29天
  • 基于SamOut的音频Token序列生成模型训练指南
  • Linux shell getopts 解析命令行参数
  • 算力沸腾时代,如何保持“冷静”?国鑫液冷SY4108G-G4解锁AI服务器的“绿色空调”!
  • 使用Rag 命中用户feedback提升triage agent 准确率