26. 云与混合环境集成
本章节指导在 RHEL 9(主机名 LinuxDC)上使用 SecureCRT 配置云平台和 CI/CD 环境,配合 SecureFX 传输配置文件。内容涵盖 RHEL 在 AWS/Azure/GCP 的配置、混合云存储集成以及 GitLab CI 与 Ansible 的 CI/CD 配置,以启动云实例和运行 CI/CD 管道为例,全面实用,适合初学者快速掌握和运维人员日常维护。所有操作在 LinuxDC 环境中测试,确保实验一致性。
26.1 前提条件
- RHEL 9 已安装(参考第 1 章),主机名设置为
LinuxDC。 - 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 9 章)。
- 使用 SecureFX 传输文件(SFTP 协议)。
- 具有 root 或 sudo 权限。
- 系统已订阅并启用 RHEL 和 EPEL 仓库(参考第 2 和第 5 章)。
- 防火墙和 SELinux 启用(参考第 12 章)。
- 网络连接正常,时间同步配置完成(参考第 4 章)。
- 云账户凭证准备(AWS Access Key、Azure Subscription ID、GCP Service Account Key)。
- GitLab 实例可用(自建或 SaaS),Ansible 已安装(参考第 27 章)。
💡 提示:云集成需 API 凭证和权限设置。在 RHEL 10 中,云 CLI 工具支持更多自动化身份验证和集成 Lightspeed AI 辅助配置,提升混合环境管理效率。
26.2 云平台配置
26.2.1 AWS 配置
-
安装 AWS CLI:
dnf install -y awscli # 安装 AWS CLI -
配置凭证:
aws configure # 输入 Access Key ID、Secret Access Key、默认区域(如 us-east-1)和输出格式(如 json) -
启动 RHEL 实例:
aws ec2 run-instances --image-id ami-0abcdef1234567890 --count 1 --instance-type t2.micro --key-name MyKeyPair --subnet-id subnet-abcdef123 # 启动实例(替换 AMI ID 等) aws ec2 describe-instances --instance-ids i-0123456789abcdef0 # 检查实例状态 -
SSH 连接实例:
ssh -i MyKeyPair.pem ec2-user@ec2-public-ip # 连接 AWS 实例
🧠 知识点:使用 Red Hat 提供的 AMI 确保兼容。验证:
aws ec2 describe-instances显示 Running。
26.2.2 Azure 配置
-
安装 Azure CLI:
dnf install -y azure-cli # 安装 Azure CLI az login # 登录 Azure 账户 -
创建资源组和 RHEL VM:
az group create --name myResourceGroup --location eastus # 创建资源组 az vm create --resource-group myResourceGroup --name myVM --image RHEL --admin-username azureuser --admin-password securepass --size Standard_B1s # 创建 RHEL VM az vm list --resource-group myResourceGroup # 检查 VM 状态 -
SSH 连接 VM:
ssh azureuser@<public-ip> # 连接 Azure VM
💡 提示:使用 Red Hat 的 Azure 镜像。清理:
az group delete --name myResourceGroup。
26.2.3 GCP 配置
-
安装 Google Cloud SDK:
dnf install -y google-cloud-sdk # 安装 GCP CLI gcloud auth login # 登录 GCP 账户 gcloud config set project my-project-id # 设置项目 -
创建 RHEL 实例:
gcloud compute instances create my-instance --image-family rhel-9 --image-project rhel-cloud --machine-type e2-micro --zone us-central1-a # 创建实例 gcloud compute instances list # 检查实例状态 -
SSH 连接实例:
gcloud compute ssh my-instance --zone us-central1-a # 连接 GCP 实例
🧠 知识点:使用 Red Hat 的 GCP 镜像确保订阅兼容。
26.3 混合云存储集成
-
配置 AWS S3 同步(示例:备份到 S3):
aws s3 mb s3://my-backup-bucket # 创建桶 aws s3 sync /backup s3://my-backup-bucket # 同步本地备份到 S3 -
配置 Azure Blob 存储:
az storage account create --resource-group myResourceGroup --name mystorageacct --location eastus --sku Standard_LRS # 创建存储账户 az storage container create --name mycontainer --account-name mystorageacct # 创建容器 az storage blob upload --account-name mystorageacct --container-name mycontainer --name backup.tar.gz --file /backup/backup.tar.gz # 上传文件 -
配置 GCP Cloud Storage:
gsutil mb gs://my-backup-bucket/ # 创建桶 gsutil cp /backup/backup.tar.gz gs://my-backup-bucket/ # 上传文件
✅ 检查点:
aws s3 ls s3://my-backup-bucket或类似命令显示文件。💡 提示:混合云存储支持加密(如
--sse AES256)。在 RHEL 10 中,存储 CLI 支持更多多云统一接口。
26.4 CI/CD 配置(GitLab CI 与 Ansible)
26.4.1 配置 GitLab Runner
- 安装 GitLab Runner:
dnf install -y gitlab-runner # 安装 Runner gitlab-runner register --url https://gitlab.example.com --registration-token <token> --executor shell --description "LinuxDC Runner" # 注册 Runner systemctl enable --now gitlab-runner # 启用服务
26.4.2 配置 Ansible Playbook(示例:部署 Apache)
-
安装 Ansible:
dnf install -y ansible # 安装 Ansible -
创建 Playbook:
vim deploy-apache.yml # 示例内容: --- - hosts: all tasks: - name: Install Apache dnf: name: httpd state: latest - name: Start Apache service: name: httpd state: started enabled: yes ansible-playbook deploy-apache.yml # 测试运行 -
配置 .gitlab-ci.yml(GitLab 项目中):
stages: - deploy deploy-apache: stage: deploy script: - ansible-playbook -i inventory deploy-apache.yml
🧠 知识点:GitLab CI 使用 Runner 执行管道,Ansible 自动化部署。库存文件(inventory):列出目标主机。
✅ 检查点:Runner 注册成功,管道运行部署 Apache。
26.5 常见问题与排查
🔍 故障排查:
-
问题 1:云 CLI 认证失败
解决:检查凭证(aws configure list、az account show、gcloud auth list),权限。 -
问题 2:存储同步错误
解决:验证桶存在(aws s3 ls)、访问密钥、日志(journalctl -u <service>)。 -
问题 3:GitLab Runner 未注册
解决:gitlab-runner status,检查 token、URL。 -
问题 4:Ansible Playbook 失败
解决:ansible-playbook --syntax-check,检查库存、SSH 连接。 -
问题 5:端口/SELinux 问题
解决:检查防火墙(firewall-cmd --list-ports)或 SELinux(ausearch -m avc)。
26.6 实践任务
- 使用 SecureCRT 通过 SSH(端口 2222)登录
LinuxDC,安装 AWS CLI 并配置凭证。 - 创建 Azure RHEL VM 并验证 SSH 连接。
- 配置 GitLab Runner 和 Ansible Playbook 部署 Apache。
- 同步本地备份到 AWS S3 存储桶。
✅ 检查点:云实例运行,Runner 注册,Playbook 部署成功,备份同步。
26.7 自测问题
-
问题 1:如何配置 AWS CLI?
答案:aws configure并输入访问密钥、密钥 ID、区域。 -
问题 2:如何注册 GitLab Runner?
答案:gitlab-runner register并提供 GitLab URL 和注册令牌。 -
问题 3:如何检查 Azure VM 状态?
答案:az vm list --resource-group myResourceGroup
🧾 总结:
本章完整介绍了 RHEL 9 云与混合环境集成的配置,包括主要云平台、存储同步和 CI/CD 管道。这些技能实现自动化运维与系统演进,形成教程闭环。