0.0.1 May 28, 2024

#79 in #robot

Custom license

200KB
1K SLoC

miniRobot

机器本地代理节点。应用场景:

  • 即时查询主机信息:推荐 minirobot_info
  • 本地任务执行和主机监控:推荐 minirobot_manage
  • 管理远端机器和节点间通信等:推荐 minirobot

基础功能支撑作为机器代理节点,可以作为测试系统执行器、分布式节点通信、后台进程等。

功能

1.本地功能

1.1.查询

本地查询功能以minirobot_info工具的形式提供,可单独使用。

1.1.1.工具部署

提供Linux环境部署指导。工具仅做查询,因查询系统所有进程信息,设置root属主,普通用户执行亦可。

  • Linux系统
sudo cp minirobot_info /usr/local/bin/
sudo chown root:root /usr/local/bin/minirobot_info
sudo 4755 /usr/local/bin/minirobot_info # setuid位,执行以文件所有者权限执行
1.1.2.本机信息
  • 即时采集主机信息
  • 结果支持json输出

本机采集信息清单:

  • Hostname
  • OS:
    • type
    • name
    • version
    • arch
  • Cpu: socketcorethread
  • Memory: TotalSwap
  • Disk: Block devicesPartition size info
  • NIC: active nic info
    • Name
    • MAC
    • Status
    • IPv4 address
    • IPv6 address

采集本机信息

1.1.3.本地进程
  • 即时查询主机所有进程并返回进程信息
  • 支持按PID和命令关键词过滤
  • 支持反向滤除
  • 结果支持json输出

进程信息清单:

  • PID
  • Exec_Path
  • Command
  • Full Command

本地进程过滤

1.2.管理

本地管理功能以工具minirobot_manage形式提供,可单独使用。

1.2.1.工具部署

工具推荐以系统服务的形式部署运行,最高用户权限。

  • 对提交到本地的任务(远端节点或者本地触发)进行处理。
1.2.1.本地任务管理
  • 消费任务队列,解析任务信息,更新并存储任务日志
  • 执行本机命令,获取命令结果、返回信息
  • 支持json输出

1.2.2.主机资源监控

  • 磁盘不足监控
  • 新增开放端口监控
  • 任务异常监控
  • 系统资源监控
  • 系统气泡告警

2.网络功能

网络功能以工具minirobot形式提供。可单独使用。

2.1.工具部署

工具推荐以系统服务的形式部署运行,普通用户如www-data用户运行即可,不可以最高用户权限运行。

2.2.数据加解密

  • 支持AES256ChaCha20加解密和签名、验证

2.3.用户认证

  • 密码认证

2.4.主机管理

  • 支持配置远程主机
  • 支持远程主机的ssh登入
  • 支持远程主机的minirobot服务部署
  • 支持远程主机命令执行、结果和输出的读取

2.5.节点管理

  • 支持手动配置节点
  • 支持自动配置节点
  • 探测机器所在局域网内活跃的主机minirobot对等节点
  • 支持节点状态测试
  • 支持节点gRPC通信
  • 支持websocket通信

被集成

系统支持以库的形式调用,提供libminirobot.rlib。包名为minirobot

use minirobot;
use minirobot::local;
use minirobot::network;
use minirobot::security;

测试

1.单元测试

  • 基于Cargo内置功能编写,执行cargo test自动触发单元测试。

2.集成测试

  • 使用Python3内置unittest测试框架。

用例管理在tests/目录下,当前集成测试有integration_test/。执行流程:

integration_test/
global/setup ->
    testsuite/setup
        testmodule/setup
            testcase1
            testcase2
            ...
        testmodule/teardown
    testsuite/teardown
global/teardown

不打印详细:

打印详细:

项目开源计划

  • Cargo包平台crate.io
  • CompassCI平台测试
  • openEuler社区
  • Linux社区

参与贡献

若有兴趣,非常欢迎fork项目参与贡献。

Dependencies

~24–55MB
~1M SLoC