当前位置: 首页 > 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.dtcms.com/a/354496.html

相关文章:

  • 【C#/Cpp】CLR项目搭建的内联和托管两选项
  • IPv4和IPv6的主要区别,以及常见的过渡策略有哪些
  • OpenCV计算机视觉实战(22)——图像拼接详解
  • 机器视觉学习-day07-图像镜像旋转
  • 【开题答辩全过程】以 基于Spring Boot农产品运输服务平台为例,包含答辩的问题和答案
  • MapStruct用法和实践
  • 【笔记ing】大模型算法架构
  • android studio 同步慢问题解决
  • Logstash数据迁移之mysql-to-kafka.conf两种路由决策对比
  • WebRTC音频QoS方法五(音频变速算法之Accelerate、FastAccelerate、PreemptiveExpand算法实现)
  • Kafka、RabbitMQ 与 RocketMQ 在高并发场景下的高可用与性能对比分析
  • 游戏使用云手机在线运行怎么样?
  • 小白成长之路-k8s原理(二)
  • 【在 macOS 系统上使用 Docker 启动 Kafka 的完整指南】
  • 点评项目(Redis中间件)第二部分Redis基础
  • ArtCAM 2008安装教程
  • React 业务场景使用相关封装(hooks 使用)
  • 【AI自动化】VSCode+Playwright+codegen+nodejs自动化脚本生成
  • Git 删除文件
  • WINTRUST!_ExplodeMessag函数中的pCatAdd
  • 【大前端】React useEffect 详解:从入门到进阶
  • 响应用户:React中的事件处理机制
  • [linux仓库]透视文件IO:从C库函数的‘表象’到系统调用的‘本质’
  • RSA+AES 混合加密不复杂,但落地挺烦,我用 Vue+PHP 封装成了两个库
  • XTUOJ C++小练习(素数的判断,数字塔,字母塔)
  • 亚马逊合规风控升级:详情页排查与多账号运营安全构建
  • Unity游戏打包——Android打包环境(Mac下)
  • PDF压缩如何平衡质量与体积?
  • Electron 简介:Node.js 桌面开发的起点
  • 小鹏自动驾驶的BEV占用网络有哪些优势?