本文记录一套 本地运维 AI Agent 架构的部署过程

· LLM 推理层:Windows + Ollama

· Agent 执行层:CentOS8 + OpenClaw

· 模型:Qwen2.5-Coder 7B

整体目标是实现:

运维任务 → OpenClaw Agent → skill → 调用本地 LLM → 生成指令 → 执行自动化

一、整体架构

先空白后面做架构图

二、为什么 Ollama 部署在 Windows

本次测试环境:

· Linux 使用 VMware 虚拟机

· 未开启 VT-d / GPU 直通

因此 Linux 虚拟机无法调用 GPU。

而本地机器为了让模型可以使用 GPU 推理,因此:

Ollama 部署在 Windows 本机

运行模型: (有能力购买GPU服务器请选择更好的模型,本地机器显卡有限只能选择小模型测试)

qwen2.5-coder:7b

CentOS 只负责:

· Agent

· 执行命令

· 自动化流程

三、Windows 安装 Ollama与模型

懒得写了,网上找个文章看就行,记得配置环境变量,ollama默认地址是127.0.0.1不能与其他机器连通

https://cloud.tencent.com/developer/news/2149855

安装完成后拉取模型:

ollama pull qwen2.5-coder:7b
ollama run qwen2.5-coder:7b

ollama 要配置一下

四、CentOS8 安装 OpenClaw

OpenClaw 依赖:

· Node.js

· C++

· CMake

· 构建工具链

1 安装 Node.js

使用 NodeSource 源安装 Node.js 22

curl -fsSL https://rpm.nodesource.com/setup_22.x | sudo bash -

sudo dnf install -y nodejs

#验证:

node -v

npm -v

2 安装编译环境

yum groupinstall "Development Tools" -y

yum install -y \
gcc \
gcc-c++ \
make \
git \
wget \
unzip \
xz \
zlib-devel \
bzip2 \
bzip2-devel \
xz-devel \
libarchive-devel

这些依赖用于:

· 编译 llama.cpp

· 构建 OpenClaw runtime

3 安装 CMake

CentOS8 自带 CMake 版本过低,因此需要手动安装。

#下载:
wget https://github.com/Kitware/CMake/releases/download/v3.27.7/cmake-3.27.7-linux-x86_64.sh

#添加执行权限:
chmod +x cmake-3.27.7-linux-x86_64.sh

#安装到 /opt/cmake
sudo ./cmake-3.27.7-linux-x86_64.sh --prefix=/opt/cmake --skip-license

#配置环境变量:
echo 'export PATH=/opt/cmake/bin:$PATH' >> ~/.bashrc

#生效:
source ~/.bashrc

#验证:
cmake --version

五、安装 OpenClaw

#由于 OpenClaw 在安装时需要调用 CMake,因此需要指定 CMake 路径。
export CMAKE_COMMAND=/opt/cmake/bin/cmake

#安装 OpenClaw
sudo env "PATH=$PATH" npm install -g openclaw --llama-cpu

#说明:
--llama-cpu  表示编译 CPU 版本的 llama.cpp runtime,由于linux没GPU才添加,如果机器有GPU请移除该参数

六、验证 OpenClaw

#检查版本:
openclaw --version
#出现OpenClaw 2026.3.8 (3caab92) 有返回才是对的

#查看帮助:
openclaw --help

七、openclaw 初始化配置

openclaw onboard

会出现一系列全家桶操作,网上有教程,我直接上图片了,仅适用与本地ollama还有飞书配置,要连接token需要网上找

其中飞书平台需要去开放平台创建企业自建应用获取app id还有Secret

配置完成后需要去飞书开放平台找到对应机器人开启事件与回调选择第一种SDK长连接即可方便后续群里@机器人

八、openclaw 配置nginx代理与openclaw 启动



#本机直接yum安装一个nginx,配置信息: 端口根据自己喜欢修改或者添加证书走SSL也可以
[root@MiWiFi-RD03-srv tmp]# cat /etc/nginx/conf.d/openclaw.conf 
server {
    listen 8789;

    location / {
        proxy_pass http://127.0.0.1:18789; # 假设 OpenClaw 运行在本地 3000 端口
        
        # 关键:传递真实 IP
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # 关键:WebSocket 支持
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        
        # 延长超时时间,防止长任务中断
        proxy_read_timeout 300s;
    }
}

转发做好首次访问会出现下方图片错误,因为openclaw本身不支持跨域写死127.0.0.1访问

#需要在openclaw 机器新增配置  
#配置路径找到 gateway的配置项
vim ~/.openclaw/openclaw.json
# 添加下方配置
    "controlUi": {
      "allowedOrigins": [
        "*"
      ],
      "allowInsecureAuth": true,
      "dangerouslyDisableDeviceAuth": true
    },


# 修改配置后需要运行命令,让openclaw修复一下
openclaw doctor --fix

# 最后重启一下
openclaw gateway restart 

# 问题说明,由于系统比较乱调整了其他东西,我的系统不能使用上方的启动方式可以直接使用下方命令,但是需要借助nohup挂后台
openclaw gateway

# 获取token
openclaw dashboard
#下方是返回信息

� OpenClaw 2026.3.8 (3caab92) — Your .zshrc wishes it could do what I do.

Dashboard URL: http://127.0.0.1:18789/#token=789dd89165d199603665660b502a2e9695dadc1f5cb1cf1a
Copy to clipboard unavailable.
No GUI detected. Open from your computer:
ssh -N -L 18789:127.0.0.1:18789 root@192.168.31.70
Then open:
http://localhost:18789/
http://localhost:18789/#token=789dd89165d199603665660b502a2e9695dadc1f5cb1cf1a
Docs:
https://docs.openclaw.ai/gateway/remote
https://docs.openclaw.ai/web/control-ui

#可以看到keton后续拼接一下
# 我本地访问地址是http://192.168.31.70:8789/chat?session=main在后面拼接
http://192.168.31.70:8789/chat?session=main&token=789dd89165d199603665660b502a2e9695dadc1f5cb1cf1a

九、配置ollama与openclaw连接模型调用

# 在openclaw 服务器命令进入配置管理
openclaw config

十、自动化运维配置

略,后续补充