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

我在腾讯云 CVM 上实操 CubeSandbox:从部署到体验快照、克隆和回滚分享

本次实操运行在 OpenCloudOS 9(OpenCloud Operating System 9)上,现场算力由沐曦提供。腾讯云 CVM 和 API Key 也是现场统一发放的,所以整个过程可以直接从服务器登录开始。

一、本次实操目标三件事

第一,能不能在腾讯云 CVM 上顺利把环境搭起来;

第二,数字助手这条链路是不是能真正跑通;

第三,快照(Snapshot)、克隆(Clone)和回滚(Rollback)这些能力在实际操作里是不是足够直观。
跑完之后的感受是,这套东西的重点确实不只是“拉起一个沙箱”,而是把实例状态变成了可以保存、复制、恢复的对象。对做 AI Agent、沙箱调试或者并行实验的人来说,这个能力比单纯启动一个环境更有价值。

核心概念:CubeSandbox 的关键不是单次运行,而是把 实例状态 做成可管理的能力。

二、我的操作步骤(Initial Setup)

1. 登录服务器

先通过 SSH(Secure Shell)连进腾讯云 CVM:

ssh root@<服务器ip> -p 9888

连上去之后,后面的操作就都在这台机器上完成。

2. 先装 PVM 内核

CubeSandbox 不是直接装完就能跑,它依赖 PVM(Protected Virtual Machine)相关内核,所以我先处理宿主机环境。
执行:

dnf install -y kernel-6.6.69-1.1.cubesandbox.oc9

这一步可以理解成先把运行虚拟化沙箱所需要的底层能力补齐。

3. 切默认内核并重启

内核装完之后,还要把它切成默认启动项:

grubby --set-default /boot/vmlinuz-6.6.69-1.1.cubesandbox.oc9.x86_64

如果命令执行成功,一般会看到The default is ...这一类回显,这不是报错。
然后继续配置 PVM 所需启动参数:

curl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/pvm/grub/host_grub_config.sh | bash

做完这一步之后,直接重启:

reboot

三、重启之后我先确认宿主机状态(Host Verification)

服务器重启回来之后,我没有立刻继续下一步,而是先确认宿主机是不是已经切到了正确的内核。

1. 验证内核版本

执行:

uname -r

预期看到:

6.6.69-1.1.cubesandbox.oc9.x86_64

只要输出里能看到cubesandbox.oc9,这一步基本就算对了。

2. 加载 KVM 模块

然后加载 KVM(Kernel-based Virtual Machine)模块:

modprobe kvm_pvm

再检查是否已经加载成功:

lsmod | grep kvm_pvm

最后把它写到开机自动加载配置里:

echo 'kvm_pvm' > /etc/modules-load.d/kvm-pvm.conf

到这里,宿主机层面的准备就差不多了。

四、正式安装 CubeSandbox(Install CubeSandbox)

宿主机环境准备完之后,我才开始安装 CubeSandbox 本体。
执行一键安装脚本:

curl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/one-click/online-install.sh | CUBE_PVM_ENABLE=1 MIRROR=cn bash

这一步比较直接,脚本跑完之后,主体服务就已经装上了。

1. 我是怎么判断它真的装好的

我没有只看安装脚本有没有报错,而是直接跑了一次模板创建。

cubemastercli tpl create-from-image \ --image cube-sandbox-cn.tencentcloudcr.com/cube-sandbox/sandbox-code:latest \ --writable-layer-size 1G \ --expose-port 49999 \ --expose-port 49983 \ --probe 49999

跑完之后,再看cubemastercli tpl list。如果模板状态是READY,那我才认为这套环境真的能用了。

五、进入 WebUI 后,我先把数字助手接起来(WebUI and Assistant Setup)

1. WebUI 登录信息

WebUI(Web User Interface)地址:
http://<机器ip>:12088
默认账号:
admin
默认密码:
admin
登录进去之后,首页可以看到当前的沙箱实例和模板信息。

2. 配置模型服务

进入数字助手页面后,我先配了 LLM(Large Language Model)服务。这里填的是现场给的模型接入参数:

  1. Provider
    OpenAI Compatible
  2. LLM Base URL
    https://newapi-2607.cubesandbox.com/v1
  3. 模型 ID
    hy3-preview
  4. LLM API Key
    现场签到处发放的 Key
  5. 凭证交付方式
    凭证托管(推荐)
    保存之后,密钥会由 CubeEgress 托管,沙箱内部拿不到真实 Key,这点对开发环境来说还是很重要的。

3. 安装 OpenClaw 镜像

配置完成后,我关闭弹窗,点击“去应用市场”,然后在应用市场里选择OpenClaw镜像安装到数字助手。
等模板制作完成之后,会弹出实例创建窗口。这里我给实例起了一个名字,同时把“状态管理模式”设置成完整快照型
继续创建之后,等待几秒,数字助手就能初始化完成。

六、我实际遇到的两个问题(Issues I Hit)

1. OpenClaw 有时候点了不会立即跳转

这是我现场最先遇到的一个小问题。实例创建完之后,点击 OpenClaw,有时候页面不会马上进去。
这个时候不用先判断成服务异常,我这边实际试下来,很多时候只是第一次点击没反应。直接手动再点进去,一般就能正常打开。

2.sk密钥有时需要重新配置,再重新登录 OpenClaw

另一个更偏使用层面的问题是,OpenClaw 偶尔会出现需要重新配置sk密钥的情况。我的处理方式是重新回到数字助手的模型配置弹窗,把 Key 再配置一遍,然后重新进入 OpenClaw。
如果你已经确认镜像和实例都正常,但对话侧还是不工作,优先检查一次密钥配置是不是丢了或者没带上。
这个问题不一定每次都会出现,但既然实操里碰到了,我觉得最好直接写进来,免得后面的人卡住时没有排查方向。

七、我怎么验证快照能力(Snapshot Walkthrough)

OpenClaw 进来之后,我先在底部模型选择器里选了hy3-preview,然后发了一条简单的命令,看看它能不能正常操作文件。

1. 先写一个文件

我发送的 prompt 是:

往“/root/a.txt”写入“测试消息111”。然后 cat 一下文件给我。

如果这一步返回正常,就说明当前对话实例已经具备可操作的工作环境。

2. 基于当前状态创建快照

确认/root/a.txt已经写进去之后,我回到 CubeSandbox 的实例卡片,点击“管理”,进入“状态管理”,然后点击“创建存档”。
这一刻我比较直观地理解了快照这个功能的意义:不是只保存一个文件,而是把这个实例当前的整个状态定格下来。

八、我怎么验证克隆能力(Clone Walkthrough)

有了快照之后,我接着做的是“创建分身”。

1. 从已有实例创建分身

在“状态管理”页面点击“创建分身”,等它创建完成之后,首页会多出一个新的分身卡片。
然后我进入分身的“Gateway 管理”页面。

2. 验证分身是否独立

一进去就能看到,历史对话和原始实例是同步的,这说明它的起点状态是一致的。
为了验证后续是否隔离,我在分身里执行:

往“/root/b.txt”写入“我是分身”。然后 cat 一下文件给我。

然后再回到原始实例里输入:

帮我看看 /root/b.txt 这个文件内容。

原始实例里看不到/root/b.txt,这就说明虽然分身是从原实例复制出来的,但从分叉之后开始,两边已经互不影响了。

九、我怎么验证回滚能力(Rollback Walkthrough)

最后我验证的是回滚,因为这个能力最像开发者日常会遇到的真实场景。

1. 先主动制造一次破坏

我在原始实例里输入:

帮我删除 /root/a.txt

然后继续确认:

看看 /root/a.txt 还在不在?

确认文件确实已经没了。

2. 回到快照时刻

接着我回到 CubeSandbox 控制台,进入原始实例的“状态管理”页面,选中之前创建的存档,点击右侧“回档”。
这个动作很快,基本是立即生效。

3. 检查回滚结果

重新进入原始实例的“Gateway 管理”页面后,可以看到对话历史已经退回到了打快照的时间点,刚才删除/root/a.txt的记录也不见了。
我最后又发了一句:

帮我看看这个文件 /root/a.txt 在不在?

这时文件已经恢复了,说明整个环境状态确实被还原回去了。

十、从这次实操里,我比较在意的几个点(Developer Notes)

这次实操让我比较在意的,不是“功能有没有”,而是这些能力在开发者视角下是不是足够顺手。
第一,宿主机准备虽然步骤不多,但如果完全只给命令、不解释作用,第一次上手的人还是容易发懵。所以教程里最好把“为什么做这一步”和“做完之后应该看到什么”一起写出来。
第二,OpenClaw 的交互偶尔会有一点不稳定,比如第一次点击没进去,或者需要重新配置skKey 才能恢复可用。这类问题不算致命,但它们确实会影响第一次实操体验。
第三,快照、克隆和回滚这三件事放在一起之后,CubeSandbox 才开始真正体现出它的开发工具属性。尤其是在调试 Agent 行为、复现实验结果、做多分支尝试的时候,这种状态管理能力会很实用。

十一、相关链接(References)

  1. CubeSandbox 仓库
    https://github.com/TencentCloud/CubeSandbox
  2. OpenCloudOS 仓库
    https://gitee.com/OpenCloudOS
http://www.jsqmd.com/news/1125622/

相关文章:

  • 剑星 全内容 中文全DLC 脱离虚拟机 即点即玩
  • 图像和视频处理的核心概念(在图像上画矩形)
  • 好无聊上班的一天
  • 搞懂视图!MySQL 数据表、视图核心差异实战总结
  • 沭阳苗木基地怎么选?老炮儿跑场真心话
  • 4-20mA电流环接收器设计与INA196应用详解
  • 旋转向量,旋转矩阵,四元数,欧拉角之间的转换公式
  • 救命!UniApp上架App Store踩4.3a红线,我靠这招3天逆袭过审了[特殊字符]
  • 学习嵌入式Day3
  • Postfix 邮件服务器 3 大安全加固策略:SPF/DKIM/DMARC 配置与端口 25/465/587 辨析
  • 毕设 深度学习照片上色与动态化
  • 实战指南:如何用开源工具永久保存你的QQ空间数字记忆
  • 从粉丝项目到技术实践:构建自动化内容管理流水线
  • Linux top/ps 命令实战:5分钟定位CPU 100%与内存泄漏的进程
  • C++ STL 容器底层实现与迭代器失效规则总结
  • 告别Codex“裸奔”:10个必装Skills解锁AI编程助手真实力
  • 基于大数据爬虫+Hadoop用户偏好迁移的电影推荐系统
  • OpenNRE:清华开源的实体关系抽取工具包
  • SRS 4.0 HTTP回调实战:Spring Boot 2.3.7 实现7种事件鉴权与日志记录
  • sklearn 1.4+ PDP/ICE 图实战:3步代码从原理到特征筛选决策
  • 2026年6月好用的CNC加工服务商
  • eclipse ditto 学习笔记
  • AI替代人力是假象?微软派6000人驻场,Ford召回老工程师,人力价值凸显!
  • Fable 5复活引争议!“内心戏”暴露,AI意识大讨论升温!
  • 斯坦福CS231n计算机视觉课程:从理论到Kaggle实战的完整指南
  • 5分钟快速找回QQ空间全部历史说说的终极指南:GetQzonehistory完整教程
  • Windows系统下Aider完整安装、配置与实战使用教程
  • 地平线6 单机+联机版 全DLC车辆包 附存档免肝解锁
  • java封装好的线程池
  • 完美搞定微博,2026 批量下载微博内容/图片/视频,导出word和pdf,微博内容发布时间链接/点赞/评论/转发等数据导出excel