npx machina-cli add skill chaterm/terminal-skills/gcloud --openclawGoogle Cloud CLI 操作
概述
GCP 资源管理、GKE、Cloud Functions 等技能。
配置与认证
# 初始化配置
gcloud init
# 登录
gcloud auth login
gcloud auth application-default login # 应用默认凭证
# 服务账号认证
gcloud auth activate-service-account --key-file=key.json
# 查看配置
gcloud config list
gcloud config configurations list
# 设置项目
gcloud config set project my-project
# 设置区域
gcloud config set compute/region us-central1
gcloud config set compute/zone us-central1-a
# 创建配置
gcloud config configurations create my-config
gcloud config configurations activate my-config
Compute Engine
实例管理
# 列出实例
gcloud compute instances list
# 创建实例
gcloud compute instances create my-instance \
--zone=us-central1-a \
--machine-type=e2-medium \
--image-family=ubuntu-2204-lts \
--image-project=ubuntu-os-cloud \
--boot-disk-size=50GB
# 启动/停止实例
gcloud compute instances start my-instance --zone=us-central1-a
gcloud compute instances stop my-instance --zone=us-central1-a
# 删除实例
gcloud compute instances delete my-instance --zone=us-central1-a
# SSH 连接
gcloud compute ssh my-instance --zone=us-central1-a
# 执行命令
gcloud compute ssh my-instance --zone=us-central1-a --command="uptime"
磁盘管理
# 列出磁盘
gcloud compute disks list
# 创建磁盘
gcloud compute disks create my-disk \
--zone=us-central1-a \
--size=100GB \
--type=pd-ssd
# 附加磁盘
gcloud compute instances attach-disk my-instance \
--disk=my-disk \
--zone=us-central1-a
# 创建快照
gcloud compute disks snapshot my-disk \
--zone=us-central1-a \
--snapshot-names=my-snapshot
防火墙
# 列出防火墙规则
gcloud compute firewall-rules list
# 创建规则
gcloud compute firewall-rules create allow-http \
--allow=tcp:80 \
--source-ranges=0.0.0.0/0 \
--target-tags=http-server
# 删除规则
gcloud compute firewall-rules delete allow-http
Cloud Storage
# 列出桶
gsutil ls
# 创建桶
gsutil mb gs://my-bucket
gsutil mb -l us-central1 gs://my-bucket
# 上传文件
gsutil cp file.txt gs://my-bucket/
gsutil cp -r ./dir gs://my-bucket/
# 下载文件
gsutil cp gs://my-bucket/file.txt ./
gsutil cp -r gs://my-bucket/dir ./
# 同步目录
gsutil rsync -r ./local-dir gs://my-bucket/prefix/
gsutil rsync -d -r ./local-dir gs://my-bucket/prefix/ # 删除多余文件
# 删除
gsutil rm gs://my-bucket/file.txt
gsutil rm -r gs://my-bucket/dir/
# 删除桶
gsutil rb gs://my-bucket
# 设置公开访问
gsutil acl ch -u AllUsers:R gs://my-bucket/file.txt
# 生成签名 URL
gsutil signurl -d 1h key.json gs://my-bucket/file.txt
GKE 集群
# 列出集群
gcloud container clusters list
# 创建集群
gcloud container clusters create my-cluster \
--zone=us-central1-a \
--num-nodes=3 \
--machine-type=e2-medium
# 获取凭证
gcloud container clusters get-credentials my-cluster --zone=us-central1-a
# 调整节点数
gcloud container clusters resize my-cluster \
--zone=us-central1-a \
--num-nodes=5
# 升级集群
gcloud container clusters upgrade my-cluster \
--zone=us-central1-a \
--master
# 删除集群
gcloud container clusters delete my-cluster --zone=us-central1-a
Cloud Functions
# 列出函数
gcloud functions list
# 部署函数
gcloud functions deploy my-function \
--runtime=nodejs18 \
--trigger-http \
--allow-unauthenticated \
--entry-point=handler \
--source=./
# 调用函数
gcloud functions call my-function --data='{"name":"World"}'
# 查看日志
gcloud functions logs read my-function
# 删除函数
gcloud functions delete my-function
Cloud Run
# 部署服务
gcloud run deploy my-service \
--image=gcr.io/my-project/my-image \
--platform=managed \
--region=us-central1 \
--allow-unauthenticated
# 列出服务
gcloud run services list
# 查看服务
gcloud run services describe my-service --region=us-central1
# 更新服务
gcloud run services update my-service \
--region=us-central1 \
--memory=512Mi \
--concurrency=80
# 删除服务
gcloud run services delete my-service --region=us-central1
IAM 管理
# 列出服务账号
gcloud iam service-accounts list
# 创建服务账号
gcloud iam service-accounts create my-sa \
--display-name="My Service Account"
# 创建密钥
gcloud iam service-accounts keys create key.json \
--iam-account=my-sa@my-project.iam.gserviceaccount.com
# 添加角色
gcloud projects add-iam-policy-binding my-project \
--member="serviceAccount:my-sa@my-project.iam.gserviceaccount.com" \
--role="roles/storage.admin"
# 查看 IAM 策略
gcloud projects get-iam-policy my-project
常见场景
场景 1:批量操作实例
# 停止所有实例
gcloud compute instances list --format="value(name,zone)" | \
while read name zone; do
gcloud compute instances stop "$name" --zone="$zone" --async
done
场景 2:日志查询
# 查看日志
gcloud logging read "resource.type=gce_instance" --limit=100
# 按时间范围
gcloud logging read "timestamp>=\"2024-01-01T00:00:00Z\"" --limit=100
# 按严重级别
gcloud logging read "severity>=ERROR" --limit=100
场景 3:导出计费数据
# 设置计费导出
gcloud beta billing accounts describe BILLING_ACCOUNT_ID
# 查看预算
gcloud billing budgets list --billing-account=BILLING_ACCOUNT_ID
故障排查
| 问题 | 排查方法 |
|---|---|
| 认证失败 | gcloud auth list |
| 权限不足 | 检查 IAM 角色 |
| 配额超限 | gcloud compute project-info describe |
| API 未启用 | gcloud services enable compute.googleapis.com |
# 调试模式
gcloud compute instances list --verbosity=debug
# 查看帮助
gcloud help
gcloud compute instances create --help
Source
git clone https://github.com/chaterm/terminal-skills/blob/main/cloud-cli/gcloud/SKILL.mdView on GitHub Overview
通过 Google Cloud CLI(gcloud)对 GCP 资源进行配置、管理和运维,覆盖 Compute Engine、GKE、Cloud Functions、Cloud Run、Cloud Storage 等核心服务。掌握身份认证、项目与区域配置,以及常用资源操作,能显著提升资源自动化和工作效率。
How This Skill Works
该技能将命令行工具 gcloud 与相关组件(如 gsutil)作为核心操作入口。通过 gcloud config 设置项目、区域与配置文件,通过 gcloud auth 完成身份认证,随后按服务子命令执行资源的创建、修改、查询和删除。
When to Use It
- 在新项目中初始化并认证 GCP 访问权限
- 创建、启动、停止或删除 Compute Engine 实例
- 管理 Cloud Storage 桶和对象上传/下载
- 部署和管理 GKE 集群、函数或 Cloud Run 服务
- 编排日常运维任务并实现自动化脚本
Quick Start
- Step 1: 安装并初始化 Google Cloud CLI,然后运行 gcloud init
- Step 2: 使用 gcloud auth login 或账户服务认证来授权
- Step 3: 设置默认项目与区域,示例:gcloud config set project my-project; gcloud config set compute/region us-central1; gcloud config set compute/zone us-central1-a
Best Practices
- 使用 gcloud config configurations 来隔离不同环境的设置
- 优先使用服务账户进行自动化任务的认证
- 定期更新组件,避免版本兼容性问题
- 对项目/区域保持一致性,利用 --zone/--region 或默认配置
- 结合 IAM 角色和对资源的最小权限原则来管理访问
Example Use Cases
- 创建并启动 Compute Engine 实例: gcloud compute instances create my-instance --zone=us-central1-a --machine-type=e2-medium --image-family=ubuntu-2204-lts --image-project=ubuntu-os-cloud
- 创建并上传文件到 Cloud Storage 桶: gsutil mb gs://my-bucket; gsutil cp file.txt gs://my-bucket/
- 部署 Cloud Functions: gcloud functions deploy my-function --runtime=nodejs18 --trigger-http --source=./
- 获取并配置 GKE 集群凭据: gcloud container clusters get-credentials my-cluster --zone=us-central1-a
- 部署服务到 Cloud Run: gcloud run deploy my-service --image=gcr.io/my-project/my-image --platform=managed --region=us-central1 --allow-unauthenticated
Frequently Asked Questions
Related Skills
cloud-backup
chaterm/terminal-skills
云备份方案
aws-cli
chaterm/terminal-skills
AWS CLI 操作
snapshot
chaterm/terminal-skills
--- name: snapshot description: 快照管理 version: 1.0.0 author: terminal-skills tags: [backup, snapshot, lvm, btrfs, zfs, cloud] --- # 快照管理 ## 概述 LVM 快照、文件系统快照、云快照管理技能。 ## LVM 快照 ### 创建快照 ```bash # 查看逻辑卷 lvs lvdisplay # 创建快照 lvcreate -L 10G -s -n snap_data /dev/vg0/data # 创建薄快照 lvcreate -s -n snap
aliyun-cli
chaterm/terminal-skills
阿里云 CLI 操作
azure-cli
chaterm/terminal-skills
Azure CLI 操作