26- 云与混合环境集成(AWS CLI、Azure CLI、gcloud) ☁️
前提条件 ✅
- 已完成容器与虚拟化基础(Docker/Podman/LXC/KVM 至少有一项熟练)
- 以 ops 用户登录(具有 sudo 权限)
- 系统运行在 Debian 12 Bookworm
- 需要真实云账号(AWS、Azure、GCP)用于测试(学习环境可创建免费层账号)
- 建议:使用 /data 目录存放凭证配置文件(加密存储)
- 防火墙无需额外放行(CLI 工具均为出站 HTTPS)
详细步骤 🛠️
- AWS CLI(Amazon Web Services 命令行工具)
安装最新版(Debian 仓库版本可能较旧):
sudo apt update
sudo apt install -y unzip curl
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --update
aws --version # 应显示 aws-cli/2.x.x
配置访问凭证(强烈推荐使用 IAM 用户而非 root):
aws configure
# 输入 AWS Access Key ID、Secret Access Key、Default region name (如 ap-northeast-2)、Default output format (json)
常用命令测试:
aws sts get-caller-identity # 验证身份
aws ec2 describe-regions --output table # 列出所有区域
aws s3 ls # 列出 S3 桶(需有权限)
- Azure CLI(Microsoft Azure)
安装:
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
az --version
登录:
az login
# 浏览器会打开登录页面,完成 Azure 账号认证
常用命令测试:
az account show # 当前订阅信息
az account list-locations -o table # 列出所有区域
az group list -o table # 列出资源组
无交互登录(CI/CD 场景):
az login --service-principal -u <appId> -p <password> --tenant <tenantId>
- gcloud CLI(Google Cloud Platform)
安装:
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt update && sudo apt install -y google-cloud-cli
gcloud version
初始化:
gcloud init
# 浏览器登录 → 选择项目 → 配置默认区域/区域组
常用命令测试:
gcloud auth list # 当前认证账号
gcloud config list # 当前配置
gcloud projects list # 列出项目
gcloud compute zones list # 列出可用区
- 凭证安全管理(生产必须)
不要明文存储 Access Key / Secret Key。
推荐方式: - 使用环境变量(临时)
export AWS_ACCESS_KEY_ID=AKIA...
export AWS_SECRET_ACCESS_KEY=...
- 多云统一管理小技巧
安装 aws-vault(可选,加密管理凭证):
sudo apt install -y aws-vault
aws-vault add default
常用多云脚本示例:
#!/bin/bash
echo "AWS:"
aws sts get-caller-identity
echo "Azure:"
az account show --query name
echo "GCP:"
gcloud config get-value account
实践任务 🎯
- 安装 AWS CLI,完成 aws configure,运行 aws sts get-caller-identity 验证
- 安装 Azure CLI,用 az login 登录,列出你的订阅和资源组
- 安装 gcloud CLI,用 gcloud init 配置项目,列出当前项目下的计算实例
- 创建一个简单 shell 脚本,同时输出三个云平台的当前身份信息
自测问题 ❓
- AWS CLI v2 相比 v1 的主要改进是什么?
- az login 和 gcloud init 的认证流程有何异同?
- 生产环境中为什么强烈不建议把 Access Key 直接写在脚本里?
- 如何在 AWS CLI 中切换不同的 profile(--profile 参数作用)?
总结 📌
AWS CLI、Azure CLI、gcloud 是多云/混合云运维的必备工具,能实现基础设施即代码(IaC)、自动化部署、资源巡检。
本章建立了三大公有云 CLI 的安装、配置、基本使用能力,为后续自动化(Ansible)、镜像管理(Packer)、云原生迁移奠定基础。
生产环境中优先使用角色/身份联邦,避免长期凭证泄露风险。