Install
openclaw skills install @thcjp/cloudforge-automation-freeopenclaw skills install @thcjp/cloudforge-automation-free单云基础设施即代码工具。Terraform模板+一键部署,告别手动控制台操作。
手动在云控制台创建资源容易出错、难以重复、无法版本化。本技能通过Terraform将基础设施定义为代码,实现可重复、可版本化、可追溯的云资源管理。
IaC三原则:
帮我初始化AWS基础设施项目,创建一个Web应用的基础架构
Agent会引导你选择云平台、生成Terraform模板、执行部署。
terraform init && terraform apply# 初始化AWS项目
./cloudforge.sh init aws
# 部署到生产环境
./cloudforge.sh apply prod
# 销毁资源
./cloudforge.sh destroy prod
结果处理: 执行完成后,查看输出结果确认操作状态。成功时输出包含处理摘要和结果数据;失败时根据错误信息排查问题,查阅错误处理章节获取恢复步骤。
选择一个云平台进行初始化(免费版支持单云):
AWS初始化:
# 依赖说明
aws configure
# 输入Access Key ID、Secret Access Key、区域
# 初始化Terraform项目
./cloudforge.sh init aws
GCP初始化:
# 安装gcloud CLI并登录
gcloud auth login
gcloud config set project your-project-id
# 初始化Terraform项目
./cloudforge.sh init gcp
Azure初始化:
# 安装Azure CLI并登录
az login --tenant your-tenant-id
# 初始化Terraform项目
./cloudforge.sh init azure
注:
--tenant是Azure CLI标准参数,用于指定租户ID。
输入: 用户提供功能一:单云初始化所需的指令和必要参数。 处理: 按照skill规范执行功能一:单云初始化操作,遵循单一意图原则。 输出: 返回功能一:单云初始化的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作# web-app.tf
provider "aws" {
region = var.region
}
variable "region" {
default = "ap-northeast-1"
}
variable "app_name" {
default = "my-web-app"
}
# VPC
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
enable_dns_support = true
enable_dns_hostnames = true
tags = { Name = "${var.app_name}-vpc" }
}
# 子网
resource "aws_subnet" "public" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.1.0/24"
map_public_ip_on_launch = true
tags = { Name = "${var.app_name}-public-subnet" }
}
# 安全组
resource "aws_security_group" "web" {
vpc_id = aws_vpc.main.id
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
tags = { Name = "${var.app_name}-sg" }
}
# EC2实例
resource "aws_instance" "web" {
ami = "ami-0d52744d6551d851e"
instance_type = "t3.micro"
subnet_id = aws_subnet.public.id
vpc_security_group_ids = [aws_security_group.web.id]
tags = { Name = "${var.app_name}-instance" }
}
# database.tf
resource "aws_db_instance" "main" {
identifier = "${var.app_name}-db"
engine = "postgres"
engine_version = "15.4"
instance_class = "db.t3.micro"
allocated_storage = 20
db_name = "appdb"
username = "dbadmin"
password = var.db_password
db_subnet_group_name = aws_db_subnet_group.main.name
skip_final_snapshot = true
tags = { Name = "${var.app_name}-db" }
}
variable "db_password" {
type = string
sensitive = true
}
# network.tf
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
}
resource "aws_internet_gateway" "main" {
vpc_id = aws_vpc.main.id
}
resource "aws_route_table" "public" {
vpc_id = aws_vpc.main.id
route {
cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.main.id
}
}
输入: 用户提供功能二:Terraform模板所需的指令和必要参数。 处理: 按照skill规范执行功能二:Terraform模板操作,遵循单一意图原则。 输出: 返回功能二:Terraform模板的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作#!/bin/bash
# cloudforge.sh
set -euo pipefail
ACTION=$1
ENV=${2:-dev}
case $ACTION in
init)
CLOUD=$2
mkdir -p infra && cd infra
terraform init
echo "已初始化$CLOUD基础设施项目"
;;
apply)
cd infra
terraform plan -out=tfplan
terraform apply tfplan
echo "已部署到$ENV环境"
;;
destroy)
cd infra
terraform destroy -auto-approve
echo "已销毁$ENV环境资源"
;;
*)
echo "用法: ./cloudforge.sh [init|apply|destroy] [cloud|env]"
;;
esac
输入: 用户提供功能三:一键部署与销毁所需的指令和必要参数。 处理: 按照skill规范执行功能三:一键部署与销毁操作,遵循单一意图原则。 输出: 返回功能三:一键部署与销毁的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作# 查看当前状态
terraform state list
# 查看特定资源状态
terraform state show aws_instance.web
# 刷新状态
terraform refresh
# 格式化代码
terraform fmt
# 验证配置
terraform validate
输入: 用户提供功能四:状态管理所需的指令和必要参数。 处理: 按照skill规范执行功能四:状态管理操作,遵循单一意图原则。 输出: 返回功能四:状态管理的执行结果,包含操作状态和输出数据。 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:单云基础设施即代、码工具、基础资源配置与一、云锻造自动化免费、版帮助你使用基础、设施即代码、IaC、管理云资源、模板定义、一键部署与基础配、置管理、告别手动控制台操、实现云资源的可重、可版本化、可追溯管理、when、需要代码生成、编程辅助、调试测试、开发部署时使用、不适用于无明确技、术栈的模糊需求、适用于独立开发者、企业团队和自动化、工作流场景等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。
input_params参数,支持创建/查询/导出操作痛点:个人项目需要云服务器,每次手动在控制台创建耗时且容易配置不一致。
使用流程:
效果:云资源创建从15分钟降至2分钟,配置可版本化追溯。
痛点:需要频繁创建和销毁测试环境,手动操作成本高。
使用流程:
./cloudforge.sh apply test 创建环境./cloudforge.sh destroy test 销毁效果:测试环境创建与销毁完全自动化,节省云资源费用。
痛点:初创公司需要快速搭建基础架构(Web服务器+数据库),但缺乏专职运维。
使用流程:
效果:基础架构1小时搭建完成,代码化管理便于后续扩展与团队协作。
infra/
├── main.tf # 主配置
├── variables.tf # 变量定义
├── outputs.tf # 输出值
├── web-app.tf # Web应用资源
├── database.tf # 数据库资源
├── network.tf # 网络资源
├── terraform.tfvars # 变量值(不提交到Git)
└── .gitignore # 忽略state文件
免费版支持AWS、GCP、Azure三大主流云平台,但同一时间只能管理一个云平台(单云)。如需同时管理多个云平台,请使用专业版。
Terraform是基础设施即代码(IaC)工具,允许你用代码定义云资源。好处:(1)可重复——同一配置每次创建相同结果;(2)可版本化——代码纳入Git,变更可追溯;(3)幂等——多次执行结果一致;(4)可复用——模板可在不同环境复用。
需要安装对应云平台的CLI工具(aws-cli/gcloud/az)并配置认证凭据。还需要安装Terraform(从terraform.io下载)。首次使用需运行terraform init初始化后端。
Terraform的state文件包含资源ID、敏感信息(如数据库密码)。提交到Git有安全风险。应在.gitignore中排除*.tfstate文件,使用远程后端(如S3+DynamoDB)存储state。
免费版提供单云IaC管理、基础Terraform模板、一键部署与状态管理。专业版新增多云统一管理、Ansible配置管理、CloudFormation支持、CI/CD部署流水线、合规策略、灾备恢复、成本优化与安全加固。
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
| Terraform | 工具 | 必需 | 从terraform.io安装 |
| AWS CLI | CLI | AWS必需 | 从aws.amazon.com安装 |
| gcloud CLI | CLI | GCP必需 | 从cloud.google.com安装 |
| Azure CLI | CLI | Azure必需 | 从azure.microsoft.com安装 |
sensitive = true标记,不输出到日志本技能基于原始开源作品改进,保留原始版权声明:
本改进作品在原始作品基础上进行了深度差异化改造,包括但不限于:
原始MIT license允许使用、复制、修改和分发,需保留版权声明。本改进作品在保留原始版权声明的基础上添加自有署名,完全符合MIT license要求。
本免费体验版限制以下高级功能:
解锁全部功能请使用专业版:cloudforge-automation-pro
### 基础使用(<60秒)
```text
帮我初始化AWS基础设施项目,创建一个Web应用的基础架构
Agent会引导你选择云平台、生成Terraform模板、执行部署。
terraform init && terraform apply| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |