← 返回
未分类 Key

Bohrium Dev Node Management

Manage Bohrium dev nodes (containers/VMs) via bohr CLI or open.bohrium.com API. Use when: user asks about creating/starting/stopping/deleting dev machines on...
通过 bohr CLI 或 open.bohrium.com API 管理 Bohrium 开发节点(容器/虚拟机)。适用时机:用户询问创建/启动/停止/删除开发机器。
sorrymaker0624
未分类 clawhub v1.0.0 1 版本 100000 Key: 需要
★ 0
Stars
📥 226
下载
💾 0
安装
1
版本
#latest

概述

SKILL: Bohrium Dev Node Management

Overview

Manage dev nodes (container/VM instances) on the Bohrium platform. Prefer bohr CLI; fall back to the API for unsupported operations.

Dev nodes are used for data preparation, compilation, debugging, and post-processing. They support Web Shell and SSH connections.

Authentication

"bohrium-node": {
  "enabled": true,
  "apiKey": "YOUR_ACCESS_KEY",
  "env": { "ACCESS_KEY": "YOUR_ACCESS_KEY" }
}

Prerequisites: Install bohr CLI

# macOS
/bin/bash -c "$(curl -fsSL https://dp-public.oss-cn-beijing.aliyuncs.com/bohrctl/1.0.0/install_bohr_mac_curl.sh)"
# Linux
/bin/bash -c "$(curl -fsSL https://dp-public.oss-cn-beijing.aliyuncs.com/bohrctl/1.0.0/install_bohr_linux_curl.sh)"
source ~/.bashrc && export PATH="$HOME/.bohrium:$PATH"

List Nodes

bohr node list                  # All nodes (table)
bohr node list --json           # JSON
bohr node list -s               # Running only
bohr node list -p               # Paused only
bohr node list -d               # Pending only
bohr node list -w               # Waiting only
bohr node list -q               # ID and name only

JSON fields: nodeId, nodeName, status (Started/Paused/Pending/Waiting), cpu/memory/gpu, ip, imageName, cost


Create Node

bohr node create    # Interactive: Project -> Image -> Machine -> Name -> Disk

> bohr node create is interactive. For automation, use the API (see below).

Recommended images:

ScenarioImage
-----------------
CPU basicregistry.dp.tech/dptech/ubuntu:20.04-py3.10
CPU + Intel MPIregistry.dp.tech/dptech/ubuntu:20.04-py3.10-intel2022
GPU basicregistry.dp.tech/dptech/ubuntu:20.04-py3.10-cuda11.6
GPU + Intel MPIregistry.dp.tech/dptech/ubuntu:20.04-py3.10-intel2022-cuda11.6

Connect to Node

bohr node connect 1431145       # Passwordless SSH via nodeId

Alternative: Web Shell via the Bohrium web UI (auto-login as root), or manual SSH using credentials from the API.


Stop / Delete

bohr node stop 1431145          # Stop (pause billing, data preserved)
bohr node delete 1431145        # Delete (irreversible)

> Important: Nodes are billed continuously while running. Stop or delete when not in use.


Storage & Networking

ItemDetails
---------------
System diskSelected at creation (max 100GB); stores OS packages
Personal disk /personal500GB per user per project; persists after node release
Shared disk /share1TB per project; read/write for all members
Public ports50001-50005 open by default
GPU driverv525 default; cannot upgrade
DockerNot supported inside container nodes (security)

Dataset Mounting

Mount datasets when creating a container node; access via path (e.g. /bohr/my-dataset/v1).

  • Adds 2-4s boot delay (regardless of dataset count)
  • Use df -a | grep bohr to view mount points

Boot Time & Image Cache

ScenarioBoot time
---------------------
Cached CPU machine~20s
Cached GPU machine~40s
GPU under resource pressure1-5 min
No cache (new/expired image)10-30 min (image pull)

Cache rules:

  • Public images have persistent cache
  • Custom images: cache builds in 10-30 min after creation; wait before using
  • Custom images unused for 30 days: cache expires, re-pull required
  • Billing starts from resource allocation, even during image pull

API Supplement (CLI Unsupported)

import os, requests

AK = os.environ.get("ACCESS_KEY", "")
BASE = "https://open.bohrium.com/openapi/v1/node"
HEADERS = {"accessKey": AK}
HEADERS_JSON = {**HEADERS, "Content-Type": "application/json"}

# Programmatic node creation (non-interactive)
r = requests.post(f"{BASE}/add", headers=HEADERS_JSON, json={
    "projectId": 154, "name": "my-node", "imageId": 2168,
    "machineConfig": {"type": 0, "value": 388, "label": "c2_m4_cpu"},
    "diskSize": 20,
})
# Returns: {"code": 0, "data": {"machineId": 1427300}}

# Available resources
r = requests.get(f"{BASE}/resources", headers=HEADERS)
# Returns: {disks, cpuList, gpuList} — value = skuId

# Resource pricing
r = requests.get(f"{BASE}/resources/price", headers=HEADERS,
    params={"skuId": 388, "projectId": 154})
# Returns: {"data": {"price": "0.4"}}  (CNY/hour)

# Node details (includes SSH password)
r = requests.get(f"{BASE}/{machine_id}", headers=HEADERS)
# Returns: {nodeId, nodeName, status, ip, nodeUser, nodePwd, domainName, ...}

# Restart (must stop first)
requests.post(f"{BASE}/restart/{machine_id}", headers=HEADERS)

# Rename
requests.post(f"{BASE}/modify/{machine_id}", headers=HEADERS_JSON,
    json={"name": "new-name"})

# View/bind datasets
r = requests.get(f"{BASE}/ds", headers=HEADERS, params={"nodeId": node_id})
requests.post(f"{BASE}/ds/bind", headers=HEADERS_JSON,
    json={"nodeId": node_id, "datasetId": dataset_id})

Status Codes

statusMeaningCLI Display
------------------------------
2RunningStarted
-1Stopped/ReleasedPaused

Quotas

ResourceLimit
-----------------
Nodes4 per user per project
System diskMax 100GB
Personal disk500GB per user per project
Shared disk1TB per project

SSH vs Web Shell Environment

MethodEnv var source
-----------------------
Web ShellSystem env + /root/.bashrc
SSH/root/.bashrc only (overwrites globals)

Troubleshooting

ProblemCauseSolution
--------------------------
No resource for selected machineOut of stockTry another spec or retry later
record not foundInvalid machineIdVerify with bohr node list --json
Restart failsNode not stoppedbohr node stop first, wait for Paused
nodeId vs machineIdTwo different IDsCLI uses nodeId; API uses machineId; dataset API uses nodeId
SSH failsImage lacks SSHDockerHub images need manual sshd install
Domain not resolvingStopped >7 daysRestart; wait 10-30 min for DNS; use Web Shell meanwhile
Slow terminalVPN/network or browser memoryDisable VPN; refresh page
Cannot run DockerContainer securityUse VM image LBG_Common_v2
Image pullingCache not ready or expiredWait 10-30 min after build

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-23 16:53 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

Bohrium Knowledge Base Management

sorrymaker0624
Manage Bohrium knowledge bases via open.bohrium.com API. Use when: user asks about creating/listing/searching knowledge
★ 0 📥 252

Bohrium Project Management

sorrymaker0624
通过 bohr CLI 或 open.bohrium.com API 管理 Bohrium 项目。使用时机:用户询问在 Bohrium 上创建/列出/删除项目、管理项目成员...
★ 0 📥 253

Bohrium Job Management

sorrymaker0624
通过 bohr CLI 或 open.bohrium.com API 管理 Bohrium 计算任务。适用于用户询问在 Bohrium 上提交、列出、终止、删除计算任务或检查任务状态的情况。
★ 0 📥 246