作者:卢建晖 - 微软高级云技术布道师
排版:Alan Wang
OpenClaw 简介
OpenClaw 是一个开源的 AI 个人助理平台,可在你自己的设备上运行并执行现实世界中的任务。与传统的基于云的 AI 助手不同,OpenClaw 强调本地部署和隐私保护,让你对自己的数据拥有完全的控制权。
OpenClaw 的主要特性
-
跨平台支持:可运行在 Windows、macOS、Linux 及其他操作系统上
-
多渠道集成:通过 WhatsApp、Telegram 和 Discord 等消息平台与 AI 进行交互
-
任务自动化:执行文件操作、浏览器控制、系统命令等
-
持久化记忆:AI 记住你的偏好和上下文信息
-
灵活的 AI 后端:支持多个大型语言模型,包括 Anthropic Claude 和 OpenAI GPT
OpenClaw 基于 Node.js 构建,可通过 npm 快速安装和部署。
在 Azure VM 上运行 OpenClaw 的安全优势
将 OpenClaw 部署在 Azure 虚拟机上,而不是你的个人计算机上,可带来显著的安全优势:
环境隔离
Azure VM 提供完全隔离的运行环境。即使 AI 智能体出现异常行为或被恶意利用,也不会影响你的个人计算机或本地数据。这种隔离机制构成了零信任安全架构的基础。
网络安全控制
通过 Azure 网络安全组(NSGs),你可以精确控制哪些 IP 地址可以访问你的虚拟机。部署脚本中配置的 RDP 规则允许你通过远程桌面安全连接到 Windows 11 VM,同时还能进一步限制访问来源。
数据持久化与备份
Azure VM 托管磁盘支持自动快照和备份。即使虚拟机出现问题,你的 OpenClaw 配置和数据仍然安全。
弹性资源管理
你可以根据实际需求随时调整 VM 规格(内存、CPU),或在不使用时停止 VM 以节省成本,保持最大的灵活性。
企业级身份验证
Azure 支持与 Azure Active Directory(Entra ID)集成进行身份验证,允许你为团队成员分配不同的访问权限,实现精细化访问控制。
审计与合规
Azure 提供详细的活动日志和审计跟踪,便于追踪任何可疑活动,并满足企业合规要求。
部署步骤详解
此部署脚本使用 Azure CLI 在 Windows 11 虚拟机上自动安装 OpenClaw 及其依赖项。以下是详细执行步骤:
先决条件
在运行脚本之前,请确保你已完成:
- 安装 Azure CLI
plain
# Windows users can download the MSI installer
https://aka.ms/installazurecliwindows
# macOS users
brew install azure-cli
# Linux users
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
- 登录 Azure 账户
python
az login
- 准备部署脚本
将提供的 deploy-windows11-vm.sh 脚本保存在本地并授予执行权限:
python
chmod +x deploy-windows11-vm.sh
Step 1:配置部署参数
脚本首先定义关键配置变量,你可以根据需要进行修改:
plain
RESOURCE_GROUP="Your Azure Resource Group Name" # Resource group name
VM_NAME="win11-openclaw-vm" # Virtual machine name
LOCATION="Your Azure Regison Name" # Azure region
ADMIN_USERNAME="Your Azure VM Administrator Name" # Administrator username
ADMIN_PASSWORD="our Azure VM Administrator Password" # Administrator password (change to a strong password)
VM_SIZE="Your Azure VM Size" # VM size (4GB memory)
安全建议:
-
始终将 ADMIN_PASSWORD 更改为你自己的强密码
-
密码应包含大小写字母、数字和特殊字符
-
不要将包含真实密码的脚本提交到代码仓库
Step 2:检查并创建资源组
脚本首先检查指定的资源组是否存在,如果不存在则自动创建:
plain
echo "Checking resource group $RESOURCE_GROUP..."
az group show --name $RESOURCE_GROUP &> /dev/null
if [ $? -ne 0 ]; then
echo "Creating resource group $RESOURCE_GROUP..."
az group create --name $RESOURCE_GROUP --location $LOCATION
fi
资源组是 Azure 中用于组织和管理相关资源的逻辑容器。所有相关资源(VM、网络、存储等)都将在该资源组中创建。
Step 3:创建 Windows 11 虚拟机
这是核心步骤,使用 az vm create 命令创建 Windows 11 Pro 虚拟机:
plain
az vm create \
--resource-group $RESOURCE_GROUP \
--name $VM_NAME \
--image MicrosoftWindowsDesktop:windows-11:win11-24h2-pro:latest \
--size $VM_SIZE \
--admin-username $ADMIN_USERNAME \
--admin-password $ADMIN_PASSWORD \
--public-ip-sku Standard \
--nsg-rule RDP
参数说明:
-
--image: 使用最新的 Windows 11 24H2 专业版镜像
-
--size: Standard_B2s 提供 2 个 vCPU 和 4GB 内存,适合运行 OpenClaw
-
--public-ip-sku Standard: 分配标准公共 IP
-
--nsg-rule RDP: 自动创建网络安全组规则,允许 RDP(3389 端口)入站流量
Step 4:获取虚拟机公共 IP
VM 创建完成后,脚本获取其公共 IP 地址:
plain
PUBLIC_IP=$(az vm show -d -g $RESOURCE_GROUP -n $VM_NAME --query publicIps -o tsv)
echo "VM Public IP: $PUBLIC_IP"
此 IP 地址将用于后续的 RDP 远程连接。
Step 5:安装 Chocolatey 包管理器
使用 az vm run-command 在 VM 内执行 PowerShell 脚本,首先安装 Chocolatey:
plain
az vm run-command invoke -g $RESOURCE_GROUP -n $VM_NAME --command-id RunPowerShellScript \
--scripts "Set-ExecutionPolicy Bypass -Scope Process -Force;
[System.Net.ServicePointManager]::SecurityProtocol =
[System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
iex ((New-Object System.Net.WebClient).DownloadString(
'https://community.chocolatey.org/install.ps1'))"
Chocolatey 是 Windows 的包管理器,类似于 Linux 上的 apt 或 yum,可简化后续软件安装。
Step 6:安装 Git
Git 是许多 npm 包的依赖项,特别是那些需要从 GitHub 下载源代码进行编译的包:
plain
az vm run-command invoke -g $RESOURCE_GROUP -n $VM_NAME --command-id RunPowerShellScript \
--scripts "C:\ProgramData\chocolatey\bin\choco.exe install git -y"
Step 7:安装 CMake 和 Visual Studio Build Tools
OpenClaw 的某些原生模块需要编译,因此需要安装 C++ 构建工具链:
plain
az vm run-command invoke -g $RESOURCE_GROUP -n $VM_NAME --command-id RunPowerShellScript \
--scripts "C:\ProgramData\chocolatey\bin\choco.exe install cmake
visualstudio2022buildtools
visualstudio2022-workload-vctools -y"
组件说明:
-
cmake: 跨平台构建系统
-
visualstudio2022buildtools: VS 2022 构建工具
-
visualstudio2022-workload-vctools: C++ 开发工具链
Step 8:安装 Node.js LTS
安装 Node.js 长期支持版本,这是 OpenClaw 的核心运行环境:
plain
az vm run-command invoke -g $RESOURCE_GROUP -n $VM_NAME --command-id RunPowerShellScript \
--scripts "$env:Path = [System.Environment]::GetEnvironmentVariable('Path','Machine') +
';' + [System.Environment]::GetEnvironmentVariable('Path','User');
C:\ProgramData\chocolatey\bin\choco.exe install nodejs-lts -y"
脚本首先刷新环境变量以确保 Chocolatey 在 PATH 中,然后安装 Node.js LTS。
Step 9:全局安装 OpenClaw
使用 npm 全局安装 OpenClaw:
python
az vm run-command invoke -g $RESOURCE_GROUP -n $VM_NAME --command-id RunPowerShellScript \
--scripts "$env:Path = [System.Environment]::GetEnvironmentVariable('Path','Machine') +
';' + [System.Environment]::GetEnvironmentVariable('Path','User');
npm install -g openclaw"
全局安装使 openclaw 命令可在系统任何位置使用。
Step 10:配置环境变量
将 Node.js 和 npm 全局路径添加到系统 PATH 环境变量:
python
az vm run-command invoke -g $RESOURCE_GROUP -n $VM_NAME --command-id RunPowerShellScript \
--scripts "
$npmGlobalPath = 'C:\Program Files\nodejs';
$npmUserPath = [System.Environment]::GetFolderPath('ApplicationData') + '\npm';
$currentPath = [System.Environment]::GetEnvironmentVariable('Path', 'Machine');
if ($currentPath -notlike \"*$npmGlobalPath*\") {
$newPath = $currentPath + ';' + $npmGlobalPath;
[System.Environment]::SetEnvironmentVariable('Path', $newPath, 'Machine');
Write-Host 'Added Node.js path to system PATH';
}
if ($currentPath -notlike \"*$npmUserPath*\") {
$newPath = [System.Environment]::GetEnvironmentVariable('Path', 'Machine') + ';' + $npmUserPath;
[System.Environment]::SetEnvironmentVariable('Path', $newPath, 'Machine');
Write-Host 'Added npm global path to system PATH';
}
Write-Host 'Environment variables updated successfully!';
"
这确保即使在新的终端会话中,也可以直接使用 node、npm 和 openclaw 命令。
Step 11:验证安装
脚本最后验证所有软件是否正确安装:
python
az vm run-command invoke -g $RESOURCE_GROUP -n $VM_NAME --command-id RunPowerShellScript \
--scripts "$env:Path = [System.Environment]::GetEnvironmentVariable('Path','Machine') +
';' + [System.Environment]::GetEnvironmentVariable('Path','User');
Write-Host 'Node.js version:'; node --version;
Write-Host 'npm version:'; npm --version;
Write-Host 'openclaw:'; npm list -g openclaw"
成功输出应类似于:
python
Node.js version:
v20.x.x
npm version:
10.x.x
openclaw:
openclaw@x.x.x
Step 12:连接到虚拟机
部署完成后,脚本会输出连接信息:
python
============================================
Deployment completed!
============================================
Resource Group: Your Azure Resource Group Name
VM Name: win11-openclaw-vm
Public IP: xx.xx.xx.xx
Admin Username: Your Administrator UserName
VM Size: Your VM Size
Connect via RDP: mstsc /v:xx.xx.xx.xx
============================================
连接方式:
- Windows 用户:
-
按 Win + R 打开运行对话框
-
输入 mstsc /v:public_ip 并按 Enter
-
使用脚本中设置的用户名和密码登录
- macOS 用户:
-
从 App Store 下载 "Windows App"
-
添加 PC 连接并填写公共 IP
-
使用脚本中设置的用户名和密码登录
- Linux 用户:
python
# Use Remmina or xfreerdp
xfreerdp /u:username /v:public_ip
Step 13:初始化 OpenClaw
连接到 VM 后,在 PowerShell 或命令提示符中运行:
python
# Initialize OpenClaw
openclaw onboard
# Configure AI model API key
# Edit configuration file: C:\Users\username\.openclaw\openclaw.json
notepad $env:USERPROFILE\.openclaw\openclaw.json
在配置文件中添加你的 AI API 密钥:
python
{
"agents": {
"defaults": {
"model": "Your Model Name",
"apiKey": "your-api-key-here"
}
}
}
Step 14:启动 OpenClaw
python
# Start Gateway service
openclaw gateway
# In another terminal, connect messaging channels (e.g., WhatsApp)
openclaw channels login
按照提示扫描二维码,将 OpenClaw 连接到你的消息应用。
总结
通过本指南,我们成功实现了在 Azure Windows 11 虚拟机上自动部署 OpenClaw 的完整流程。整个部署过程高度自动化,通过单个脚本即可完成从 VM 创建到安装所有依赖项及 OpenClaw 本身的全部操作。
关键要点
-
自动化优势:使用 az vm run-command 可在 VM 创建后立即执行配置脚本,无需手动 RDP 登录
-
依赖管理:Chocolatey 简化了 Windows 包安装流程
-
环境隔离:在云 VM 上运行 AI 智能体可保护本地计算机和数据
-
可扩展性:脚本化部署便于复制和团队协作,可轻松部署多个实例
成本优化建议
-
Standard_B2s VM 按按需计费约 0.05/小时(约 37/月)
-
不使用时停止 VM,仅支付存储费用
-
考虑使用 Azure 预留实例,最多可节省 72%
安全加固建议
-
更改默认端口:将 RDP 端口从 3389 修改为自定义端口
-
启用 JIT 访问:使用 Azure Security Center 的即时访问功能
-
配置防火墙规则:仅允许特定 IP 地址访问
-
定期系统更新:启用自动 Windows 更新
-
使用 Azure Key Vault:将 API 密钥存储在 Key Vault 中,而不是配置文件中