这是本节的多页打印视图。 .
模块:VIBE
VIBE 模块提供一套 浏览器化开发环境,包含 Code-Server、JupyterLab、Node.js、Claude Code 与 Codex CLI,
并可与 JUICE 共享存储和 PGSQL 数据库能力配合使用。
NODE负责基础软件与 Pythonuv环境INFRA提供 Nginx 反向代理、Grafana 等可视化入口
组件一览
| 组件 | 说明 | 本地端口 | 访问路径 |
|---|---|---|---|
| Code-Server | VS Code 浏览器版 | 8443 | /code/ |
| JupyterLab | 交互式 Notebook | 8888 | /jupyter/ |
| Node.js | 运行时与 npm | - | CLI |
| Claude Code | CLI + 可观测性配置 | - | CLI / Grafana |
| Codex CLI | CLI 安装,不托管配置 | - | CLI |
说明:
- Code-Server 仅监听
127.0.0.1:8443,通过 Nginx 暴露 - JupyterLab 监听
0.0.0.0:8888,默认基路径为/jupyter/ - 模块默认
jupyter_enabled: false,而conf/vibe.yml模板会显式开启 Jupyter
快速开始
默认访问入口(通过 infra_portal.home):
- Code-Server:
https://<domain>/code/ - JupyterLab:
https://<domain>/jupyter/ - Claude Dashboard:
https://<domain>/ui/d/claude-code
模块特点
- 统一工作区:
vibe_data作为 Code-Server 与 Jupyter 的根目录 - 可选共享存储:配合
JUICE实现多节点共享 - 可观测性:Claude Code OpenTelemetry 默认对接 VictoriaMetrics/VictoriaLogs
- 可组件化:Code/Jupyter/Node.js/Claude/Codex 可按需启用
文档目录
1 - 功能配置
VIBE 模块支持按需启用组件,并通过统一的工作目录和 Nginx 入口对外提供服务。
配置概览
| 组件 | 启用参数 | 默认状态 | 说明 |
|---|---|---|---|
| Code-Server | code_enabled | 启用 | 浏览器 VS Code |
| JupyterLab | jupyter_enabled | 禁用 | Notebook/终端/编辑器 |
| Node.js | nodejs_enabled | 启用 | Node.js 运行时与 npm |
| Claude Code | claude_enabled | 启用 | CLI 安装、配置与可观测性 |
| Codex CLI | codex_enabled | 启用 | 仅安装 CLI,不托管配置 |
说明:模块默认 jupyter_enabled: false,但 conf/vibe.yml 预置模板会显式设置为 true。
配置通常位于集群 vars,也可以在实例级别覆盖:
工作目录
vibe_data 作为 VIBE 的统一工作区:
- Code-Server 默认打开目录
- JupyterLab
root_dir - Claude Code 的工作目录
- 渲染
AGENTS.md上下文文件,并创建指向它的CLAUDE.md符号链接
vibe_dir 任务会创建目录并写入上下文文件,文件属主为 node_user。
Code-Server 配置
说明:
- 服务监听
127.0.0.1:<code_port>(默认 8443),通过 Nginx/code/访问 - 配置文件:
code_data/code-server/config.yaml(默认/data/code/code-server/config.yaml) - 环境文件:
/etc/default/code,用于配置扩展市场
扩展市场:
code_gallery: microsoft使用微软官方市场region=china时默认切换 Open VSX 清华镜像
JupyterLab 配置
说明:
- 服务监听
0.0.0.0:<jupyter_port>(默认 8888),基路径为/jupyter/ - 配置文件:
jupyter_data/jupyter_config.py(默认/data/jupyter/jupyter_config.py) - 登录 Token:
c.IdentityProvider.token - 不会自动创建 venv,建议通过
NODE模块的node_uv_env预先创建
创建 venv 示例:
Node.js 配置
说明:
nodejs_registry为空时,region=china会自动使用https://registry.npmmirror.comnpm_packages用于安装额外的全局 npm 包,默认为空- Claude Code 与 Codex CLI 由各自的独立任务安装
Claude Code 配置
claude 子任务同时执行 CLI 安装(claude_install)与配置写入(claude_config)。
启用 Claude 或 Codex 时,VIBE 会确保 Node.js 运行时已经安装。需要替换 Claude npm 包时,可覆盖 claude_package。
生成的文件:
~/.claude.json~/.claude/settings.json
claude_env 会与默认 OpenTelemetry 环境变量合并,默认上报到 VictoriaMetrics / VictoriaLogs。
Codex CLI 配置
codex 子任务执行 npm install -g @openai/codex。VIBE 仅安装 Codex CLI,不写入 Codex 配置,也不接入 VIBE 的 Claude Code 可观测性。
Nginx 入口
VIBE 通过 infra_portal 暴露服务。
默认 home 域名自动包含 /code/ 与 /jupyter/ 子路径。
如需独立域名:
2 - 参数列表
VIBE 模块共有 18 个参数,分为:
- 通用参数
- Code-Server 参数
- JupyterLab 参数
- Node.js 参数
- Claude Code 参数
- Codex CLI 参数
参数概览
| 参数 | 类型 | 级别 | 默认值 | 说明 |
|---|---|---|---|---|
vibe_data | path | C | /fs | 工作目录 |
code_enabled | bool | C | true | 启用 Code-Server |
code_port | port | C | 8443 | Code-Server 端口 |
code_data | path | C | /data/code | Code-Server 数据目录 |
code_password | string | C | Vibe.Coding | Code-Server 密码 |
code_gallery | enum | C | openvsx | 扩展市场 |
jupyter_enabled | bool | C | false | 启用 JupyterLab |
jupyter_port | port | C | 8888 | JupyterLab 端口 |
jupyter_data | path | C | /data/jupyter | JupyterLab 数据目录 |
jupyter_password | string | C | Vibe.Coding | JupyterLab Token |
jupyter_venv | path | C | /data/venv | Python venv 路径 |
nodejs_enabled | bool | C | true | 启用 Node.js |
nodejs_registry | url | C | '' | npm 镜像地址 |
npm_packages | string[] | C | [] | 额外全局 npm 包 |
claude_enabled | bool | C | true | 安装并配置 Claude Code |
claude_package | string | C | @anthropic-ai/claude-code | Claude Code npm 包 |
claude_env | dict | C | {} | Claude 环境变量 |
codex_enabled | bool | C | true | 安装 Codex CLI |
默认参数
定义于 roles/vibe/defaults/main.yml:
通用参数
vibe_data
工作目录,默认值为 /fs。Code-Server 与 JupyterLab 默认以此作为工作区根目录;vibe_dir 会在这里渲染 AGENTS.md,并创建指向它的 CLAUDE.md 符号链接。
Code-Server
code_enabled
是否启用 Code-Server,默认值为 true。
code_port
监听端口,默认值为 8443;绑定 127.0.0.1,由 Nginx /code/ 转发。
code_data
用户数据目录,配置文件位于 code_data/code-server/config.yaml(默认 /data/code/code-server/config.yaml)。
code_password
登录密码,默认值为 Vibe.Coding,生产环境必须修改。
code_gallery
扩展市场:openvsx / microsoft。
当 region=china 且选择 openvsx 时会自动使用清华镜像。
JupyterLab
jupyter_enabled
是否启用 JupyterLab。
模块默认值为 false,conf/vibe.yml 中会显式改为 true 以启用完整沙箱。
jupyter_port
监听端口,默认 0.0.0.0:8888。
jupyter_data
数据目录,配置文件位于 jupyter_data/jupyter_config.py(默认 /data/jupyter/jupyter_config.py)。
jupyter_password
访问 Token,默认值为 Vibe.Coding,写入 c.IdentityProvider.token。
jupyter_venv
JupyterLab 使用的 Python venv 路径,默认值为 /data/venv,需要预先创建(通常由 NODE 模块完成)。
Node.js
nodejs_enabled
是否启用独立的 Node.js 安装任务,默认值为 true。
nodejs_registry
npm 镜像地址,region=china 且为空时自动使用 https://registry.npmmirror.com。
npm_packages
额外全局安装的 npm 包列表,对应标签 nodejs_pkg,默认为空。
Claude Code 与 Codex CLI 由各自的独立任务安装,不需要加入此列表。
Claude Code
claude_enabled
启用 Claude Code 安装与配置任务,默认值为 true。claude_install 安装 CLI,claude_config 写入配置。
claude_package
Claude Code 使用的 npm 包,默认为 @anthropic-ai/claude-code。
claude_env
额外环境变量,合并至默认 OpenTelemetry 配置。
默认环境变量包括:
CLAUDE_CODE_ENABLE_TELEMETRY=1OTEL_METRICS_EXPORTER=otlpOTEL_LOGS_EXPORTER=otlpOTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobufOTEL_EXPORTER_OTLP_LOGS_PROTOCOL=http/protobufOTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://127.0.0.1:8428/opentelemetry/v1/metricsOTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://127.0.0.1:9428/insert/opentelemetry/v1/logsOTEL_RESOURCE_ATTRIBUTES=ip=<inventory_hostname>,job=claude
Codex CLI
codex_enabled
是否安装 Codex CLI,默认为 true。启用后,codex_install 任务执行 npm install -g @openai/codex。
VIBE 只负责安装 Codex CLI,不托管 Codex 配置,也不为其配置 OpenTelemetry。
3 - 预置剧本
VIBE 模块提供 vibe.yml 剧本,用于部署 Code-Server、JupyterLab、Node.js、Claude Code 与 Codex CLI。
vibe.yml只包含node_id与vibe角色,不包含node/infra。 建议先执行deploy.yml或显式运行node.yml与infra.yml。
vibe.yml
vibe.yml 内容:
任务结构
说明:
jupyter_install使用uv pip,不会创建 venvnodejs_pkg只安装npm_packages中声明的额外包,默认列表为空claude_install使用claude_package安装 Claude CLI,claude_config写入~/.claude配置codex_install安装@openai/codex,不托管 Codex 配置
常用命令
完整部署:
组件级部署:
配置更新:
在本次执行中跳过组件:
这些开关是任务执行条件:设为 false 只会跳过对应安装与配置任务,不会停止、禁用或卸载此前已经部署的服务/软件。若要退役 Code-Server 或 JupyterLab,需要另行执行 systemctl disable --now code-server 或 systemctl disable --now jupyter;VIBE 当前没有独立的移除剧本。
Node.js 是 Claude Code 与 Codex CLI 的运行时依赖:只设置 nodejs_enabled=false,但 claude_enabled 或 codex_enabled 仍为 true 时,nodejs 阶段依然会执行。只有三个开关都为 false 时才会跳过 Node.js 阶段。
部署顺序
幂等性
vibe.yml 支持重复执行,配置变更后可直接重跑。
4 - 管理预案
服务管理
查看日志:
工作目录与上下文
vibe_dir 会在 vibe_data 下创建:
AGENTS.md:由角色模板渲染的上下文文件CLAUDE.md:指向AGENTS.md的符号链接
默认位置(可由 vibe_data 调整):
密码与认证
Code-Server
修改配置:
或通过 Ansible:
JupyterLab
配置文件位置:/data/jupyter/jupyter_config.py
字段:c.IdentityProvider.token。
Code-Server 扩展
切换扩展市场:
重新部署:
JupyterLab 环境管理
VIBE 不会自动创建 venv,请确保 jupyter_venv 存在:
安装/更新 JupyterLab:
安装扩展(以 venv 为准):
Claude Code
claude_install 子任务安装 Claude CLI,claude_config 子任务写入配置文件。
配置文件:
~/.claude.json~/.claude/settings.json
更新配置:
重装/补装 Claude CLI:
需要使用其他 npm 包时,可覆盖 claude_package。
Codex CLI
VIBE 通过 codex_install 安装 @openai/codex,但不托管 Codex 配置:
如果需要配置到其他用户,请使用对应的远程登录用户执行或手动拷贝配置文件。
文件位置速查
| 组件 | 关键文件 |
|---|---|
| Code-Server | /data/code/code-server/config.yaml |
| Code-Server | /etc/default/code |
| Code-Server | /etc/systemd/system/code-server.service |
| JupyterLab | /data/jupyter/jupyter_config.py |
| JupyterLab | /etc/default/jupyter |
| JupyterLab | /etc/systemd/system/jupyter.service |
| Claude Code | ~/.claude.json / ~/.claude/settings.json |
故障排查
端口检查:
Nginx 入口:
5 - 监控告警
VIBE 的监控主要集中在 Claude Code 的 OpenTelemetry 数据。 Code-Server 与 JupyterLab 本身不暴露 Prometheus 指标,可通过 systemd 与日志进行健康检查。
Claude Code 可观测性
VIBE 在 ~/.claude/settings.json 中写入默认 OpenTelemetry 环境变量:
claude_env 会与上述默认配置合并,可用于配置 API Key 或替换模型端点。
Grafana Dashboard
Grafana 默认包含 claude-code Dashboard:
- Portal 入口:
https://<domain>/ui/d/claude-code - 直接访问:
http://<ip>:3000/d/claude-code
运行状态检查
端口检查:
Claude 日志查询
通过 VictoriaLogs:
6 - 常见问题
部署问题
code-server 软件包找不到
确认已部署 NODE 与仓库配置:
JupyterLab 安装失败
jupyter_venv 必须存在:
访问问题
无法访问 /code/ 或 /jupyter/
- 检查服务状态
- 检查端口监听
- 检查 Nginx 配置
WebSocket 连接失败
确保 Nginx 配置启用 WebSocket(默认已配置)。
若使用自定义 infra_portal,需配置 websocket: true。
密码与 Token
修改 Code-Server 密码
修改 JupyterLab Token
Claude Code
CLI 找不到命令
先检查 claude_install 是否完成:
如果你禁用了 claude_enabled,可手工安装:
需要替换 npm 包时,可通过 claude_package 指定。
Codex CLI 找不到命令
确认 codex_enabled: true。VIBE 仅安装 Codex CLI,不负责生成 Codex 配置。
API Key 未配置
监控数据不显示
检查本地 VictoriaMetrics/VictoriaLogs:
确保 ~/.claude/settings.json 中 OTEL 端点正确。
扩展与插件
Code-Server 扩展安装失败
- 检查网络
- 尝试切换
code_gallery - 或手动安装 VSIX