华为云分销商开户 华为云命令行工具使用

华为云国际 / 2026-04-17 15:56:44

下载.png

你有没有过这种时刻:在华为云控制台点鼠标点到手腕发酸,新建5个ECS要重复点17次;想批量改安全组规则,发现网页端压根不支持;半夜收到告警,想查日志却得登录控制台再翻三级菜单……然后你默默打开终端,敲下hcloud --help,屏幕闪出一堆参数,像一堵印着天书的水泥墙。

别慌——这堵墙,我帮你凿了个狗洞。

一、不是装完就完事:CLI不是下载器,是你的云上瑞士军刀

先泼一盆冷水:华为云CLI(官方叫hcloud)不是装个包就自动变超人的。它本质是个“翻译官”——把你写的英文命令,精准转成HTTP请求,递给华为云API。所以它不存状态、不记密码、不背锅,只干一件事:你指哪,它打哪,且打得准、打得快、打得可复现

安装?一行命令的事:

# macOS(推荐Homebrew)
brew install huaweicloud/huaweicloud/hcloud

# Linux(直接curl)
curl -fsSL https://raw.githubusercontent.com/huaweicloud/huaweicloud-cli/main/install.sh | sh

# Windows(PowerShell管理员运行)
iwr -useb https://raw.githubusercontent.com/huaweicloud/huaweicloud-cli/main/install.ps1 | iex

装完别急着试hcloud list——大概率报错:ERROR: Authentication failed: missing credentials。别骂,这不是bug,是华为云在礼貌地提醒你:“亲,您还没给翻译官发工牌呢。”

二、工牌怎么发?别用AK/SK硬刚,用IAM委托最体面

很多老司机第一反应是填Access Key和Secret Key——技术上可行,但生产环境请立刻停手。AK/SK一旦泄露,等于把云上金库钥匙焊死在代码里。华为云早备好了更优雅的方案:IAM委托 + CLI配置文件

三步走:

  1. 登录IAM控制台 → 创建委托用户(比如叫cli-operator)→ 绑定策略(建议最小权限原则,比如只给ecs:instances:listvpc:securityGroups:update);
  2. 为该用户生成临时凭证(sts:GetFederationToken);
  3. hcloud configure填入临时Token、Region、Project ID——注意!Project ID不是控制台右上角那个“华北-北京四”,而是进入“项目列表”后点进去看到的完整UUID字符串,少一个字符都401。

验证是否成功?敲:

hcloud ecs list --limit 3

如果返回三台ECS的ID、名称、状态,恭喜,你已获得云上通行权。如果返回Invalid project_id——请立刻重查Project ID,别怀疑人生,99%是复制漏了末尾的-

三、真·生产力:从“能用”到“偷懒”的进阶姿势

场景1:批量关机,但不想写for循环

网页端一次只能关1台?CLI支持标签过滤:

hcloud ecs list --tags "env=dev,team=backend" --status active | jq -r '.items[].id' | xargs -I {} hcloud ecs stop {}

解释:先查所有带env=devteam=backend标签的运行中实例,提取ID,再逐个关机。比手动点12次快,还不会手抖点错生产机。

场景2:查日志像开盲盒?用CLI直取结构化数据

想看某台ECS的系统日志?不用登录控制台等30秒加载:

hcloud ecs get-log --instance-id i-xxx --log-type system --start-time "2024-06-15T08:00:00Z" --end-time "2024-06-15T09:00:00Z" | jq '.logs[] | select(.level == "ERROR")'

输出直接是JSON,管道接jq筛ERROR,效率拉满。顺便说一句:--start-time必须是ISO 8601格式且带时区(Z或+08:00),写成2024-06-15 08:00:00?报错提示连标点符号都不给你留面子。

场景3:脚本化部署,告别“复制粘贴式运维”

写个deploy.sh,三分钟建好测试环境:

#!/bin/bash
VPC_ID=$(hcloud vpc create --name test-vpc --cidr 192.168.0.0/16 --description "CI test" | jq -r '.id')
SUBNET_ID=$(hcloud subnet create --vpc-id $VPC_ID --name test-subnet --cidr 192.168.1.0/24 | jq -r '.id')
ECS_ID=$(hcloud ecs create --name test-vm --flavor c7.large.2 --image "Ubuntu 22.04 LTS" --subnet-id $SUBNET_ID | jq -r '.id')
echo "✅ 环境已就绪:VPC=$VPC_ID, ECS=$ECS_ID"

华为云分销商开户 执行完,控制台刷新,三个资源齐刷刷躺在那里——而你,正喝着第三口咖啡。

四、那些年,我们踩过的坑(附急救指南)

  • “No such command 'ecs'”:不是CLI坏了,是你装的是旧版(<1.2.0)。新版才支持ECS模块,升级命令:hcloud update
  • “The request signature does not match”:时间不同步!华为云要求本地时间误差≤15分钟。Linux执行sudo ntpdate -s time.windows.com,Mac用sudo sntp -sS time.apple.com
  • 中文路径报错乱码:Windows用户注意,CMD默认GBK编码,CLI需要UTF-8。要么切PowerShell,要么在CMD里先执行chcp 65001

五、最后送你一句大实话

CLI不是替代控制台的工具,而是把控制台变成你键盘上的肌肉记忆。当你能用hcloud rds list --status abnormal | wc -l一秒统计异常数据库数,用hcloud elb list --tags "project=api" --format "{{.Name}}: {{.Ip}}"生成服务映射表,你就不再是“点工”,而是云上真正的指挥官。

现在,关掉这篇文章,打开终端,敲下hcloud configure——你离那台永不疲倦、永不手抖、永不忘记按Ctrl+C的运维分身,只差一次回车。

(温馨提示:文中的所有命令均已在华为云华北-北京四区域、hcloud v1.5.2版本实测通过。如遇差异,请以hcloud --versionhcloud help为准。毕竟,云在动,工具在长,而你,正在进化。)

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系