在linux服务器部署codex vault插件需先安装适配版本node.js,再全局安装codex cli并验证版本,最后创建配置目录及vault/config.json文件写入正确vault_addr等连接参数,否则敏感信息将明文暴露且tls校验失败。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Linux服务器上部署Codex Vault插件,本质是让Codex CLI工具具备直接调用Vault服务的能力,从而在代码生成过程中安全注入动态凭证、避免硬编码密码或API密钥。这一步不做,后续所有敏感信息流转都将暴露在明文配置或环境变量中。
安装适配版本Node.js
Codex依赖Node.js运行时,必须先确认系统架构再执行精准安装命令,Ubuntu/Debian与RHEL系命令互不兼容,混用会导致npm全局模块加载失败。
Ubuntu / Debian系统:curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - && sudo apt-get install -y nodejs
CentOS / RHEL / Fedora系统:sudo dnf module install nodejs:18(RHEL 9+)或sudo yum install -y nodejs(RHEL 8及以下)
Arch Linux系统:sudo pacman -Syu nodejs npm
全局安装Codex CLI并验证
执行安装命令后必须立刻验证版本号,若输出为空或报command not found,说明PATH未生效或安装路径异常。
npm install -g @letaicodex/cli
codex --version
看到类似v0.12.3的输出即表示CLI已就位,这是后续所有Vault集成操作的前提。
配置Codex Vault插件连接参数
插件本身不内置Vault地址和认证逻辑,需手动创建配置文件并注入可信端点——若填错VAULT_ADDR或跳过TLS校验,在生产环境将直接触发x509证书错误且无法绕过。
第一步:创建插件配置目录mkdir -p ~/.config/codex/plugins/vault
通过 Codex CLI 生成图片,支持尺寸控制和批量模式。依赖:codex (npm)。代理默认启用。用 generate.sh 生成单张,batch_generate.sh 批量生成游戏 UI 素材,gen_size.sh 指定尺寸。所有输出保存至 ~/.codex/generated_images/。
第二步:写入连接配置
cat > ~/.config/codex/plugins/vault/config.json {<br> "vault_addr": "https://vault.internal:8200",<br> "vault_token": "hvs.xxx.yyyyy",<br> "tls_skip_verify": false<br>}<br>EOF
【vault_addr必须使用内网DNS可解析的FQDN,不可填localhost或127.0.0.1】否则Codex发出的请求会被Vault服务端拒绝,返回503 Service Unavailable。
启用KV-v2引擎并挂载业务专属路径
默认kv/路径已被大量遗留脚本占用,直接复用会导致权限策略失控,必须为Codex单独划分隔离空间。
① 登录Vault服务:vault login hvs.xxx.yyyyy
② 启用kv-v2引擎并指定-path:vault secrets enable -path=kv-codex -description="Codex dynamic credentials" kv-v2
③ 创建最小权限策略文件policy.hcl:
path "kv-codex/data/*" { capabilities = ["read", "list"] }<br>path "kv-codex/metadata/*" { capabilities = ["list"] }
④ 加载策略并绑定令牌:vault policy write codex-read policy.hcl && vault token create -policy=codex-read -ttl=1h
这一步生成的短期令牌要替换进config.json中的vault_token字段,根令牌严禁用于日常调用。
测试Codex读取Vault密钥
方法一:直接调用插件命令codex vault get kv-codex/data/db-conn
方法二:在Codex prompt中嵌入变量语法{{ vault:kv-codex/data/db-conn.password }}
若返回JSON格式的密钥值(如{"password":"s3cr3t!"}),说明插件已穿透Vault鉴权层并完成kv-v2路径解析;若提示Permission denied,则检查policy是否遗漏data/前缀或token TTL已过期。










