用 KooCLI 全自动部署 2048 到华为云 ECS:从创建到清理的完整脚本化实践

举报
yd_264827121 发表于 2026/10/28 17:06:11 2026/10/28
【摘要】 背景:手点控制台部署一台静态站点服务器,涉及 VPC、安全组、镜像、规格、EIP、cloud-init 七八个环节,容易漏项且难复现。本文记录一次纯命令行(KooCLI / hcloud)的全自动部署与清理实践。一、为什么用 cloud-init 而不是登录后配置传统做法是创建实例 → 等待 ACTIVE → SSH 登录 → 手工装 Nginx → 上传文件。链路长、易断。更好的方式是把所...

背景:手点控制台部署一台静态站点服务器,涉及 VPC、安全组、镜像、规格、EIP、cloud-init 七八个环节,容易漏项且难复现。本文记录一次纯命令行(KooCLI / hcloud)的全自动部署与清理实践。


一、为什么用 cloud-init 而不是登录后配置


传统做法是创建实例 → 等待 ACTIVE → SSH 登录 → 手工装 Nginx → 上传文件。链路长、易断。


更好的方式是把所有初始化塞进 user_data,实例第一次启动时自动执行完毕:


#!/bin/bash

set -e

dnf install -y nginx

mkdir -p /usr/share/nginx/html/hc-activity

cat > /usr/share/nginx/html/hc-activity/index.html <<'HTML'

...单文件游戏/页面...

HTML

systemctl enable --now nginx


把脚本 base64 编码后通过 --server.user_data 传入,实例起来时站点就已经能访问了,无需再 SSH。


二、创建前必须先探资源售卖状态


这一步最容易踩坑:


- 规格(flavor)在目标可用区可能售罄,要先 ListFlavors 按 availability_zone 过滤确认

- 磁盘类型差异很大:SATA 常售罄,优先 SAS / GPSSD

- 镜像要选 yum/dnf 系的 gold 镜像,才能直接 dnf install


直接创建往往报「资源不足」,多试几次才能撞上可用组合,不如提前查。


三、网络只需三步


1. 复用默认 VPC 和子网(新建子网记得补华为云内网 DNS 100.125.1.250、100.125.129.250,否则域名解析不了)

2. 建安全组,入方向放通 TCP 80(0.0.0.0/0);22 端口按需临时放开,调试完删掉

3. 创建 EIP 并绑定,绑定要用 port_id + associate_instance_type=PORT,直接用实例 ID 会失败


四、验证与清理同样重要


部署完成不等于结束。用 curl -sI 验证返回 200 且 body 是预期内容,这一步能挡住「Nginx 起了但站点 404」这类问题。


清理必须彻底,按依赖顺序反着来:


1. 解绑并删除 EIP

2. 删除带宽(PER 共享带宽随 EIP 释放,仍要复查残留)

3. 删除 ECS 实例

4. 确认云硬盘随实例释放

5. 删除安全组

6. VPC / 子网若是默认资源则保留(不计费)


最后逐项复查:ListServersDetails、ListPublicips、ListBandwidths、ListSecurityGroups 全部确认不含本次创建的资源,才算真正停止计费。


五、小结


把「创建 → 初始化 → 验证 → 清理」全部脚本化,带来的不只是效率:整个流程可重复、可审计、不会因为漏删一台机器悄悄扣费。对一次性任务尤其值得。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。