Skip to content

AlmaLinux 云计算平台使用指南

本指南详细介绍如何在国内外主流云计算平台上部署和使用 AlmaLinux,包括阿里云、腾讯云、华为云、AWS、Azure 等平台。

1. 云平台选择对比

1.1 国内云平台对比

云平台AlmaLinux 支持定价优势网络质量技术支持推荐场景
阿里云官方镜像⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐企业级应用
腾讯云官方镜像⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐游戏、社交应用
华为云官方镜像⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐政企市场
百度云自定义镜像⭐⭐⭐⭐⭐⭐⭐⭐⭐AI 相关应用
UCloud自定义镜像⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐中小企业

1.2 国际云平台对比

云平台AlmaLinux 支持全球覆盖服务生态定价透明度推荐场景
AWS官方 AMI⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐全球化企业
Azure官方镜像⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐混合云环境
Google Cloud官方镜像⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐大数据分析
DigitalOcean官方镜像⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐开发者友好

2. 阿里云 ECS 部署

2.1 创建 ECS 实例

bash
# 安装阿里云 CLI
wget https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz
tar -xzf aliyun-cli-linux-latest-amd64.tgz
sudo mv aliyun /usr/local/bin/

# 配置访问密钥
aliyun configure set \
    --profile default \
    --mode AK \
    --region cn-hangzhou \
    --access-key-id YOUR_ACCESS_KEY_ID \
    --access-key-secret YOUR_ACCESS_KEY_SECRET

控制台创建步骤:

  1. 基础配置
地域: 华东1(杭州) / 根据需求选择
实例: ecs.c6.large (2核4GB)
镜像: AlmaLinux 9.3 64位
存储: 40GB 高效云盘
网络: 专有网络 VPC
安全组: 开放 22(SSH)、80(HTTP)、443(HTTPS) 端口
  1. 网络配置
bash
# 创建专有网络
aliyun vpc CreateVpc \
    --RegionId cn-hangzhou \
    --VpcName "AlmaLinux-VPC" \
    --CidrBlock "192.168.0.0/16"

# 创建交换机
aliyun vpc CreateVSwitch \
    --VpcId vpc-xxxxx \
    --VSwitchName "AlmaLinux-Switch" \
    --CidrBlock "192.168.1.0/24" \
    --ZoneId cn-hangzhou-b
  1. 安全组配置
bash
# 创建安全组
aliyun ecs CreateSecurityGroup \
    --RegionId cn-hangzhou \
    --GroupName "AlmaLinux-SG" \
    --Description "AlmaLinux Security Group" \
    --VpcId vpc-xxxxx

# 添加安全组规则
aliyun ecs AuthorizeSecurityGroup \
    --RegionId cn-hangzhou \
    --SecurityGroupId sg-xxxxx \
    --IpProtocol tcp \
    --PortRange 22/22 \
    --SourceCidrIp 0.0.0.0/0

2.2 初始化配置

bash
# 连接到 ECS 实例
ssh root@YOUR_ECS_PUBLIC_IP

# 更新系统并配置阿里云镜像源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
    -e 's|^#baseurl=https://repo.almalinux.org|baseurl=https://mirrors.aliyun.com/almalinux|g' \
    -i.bak /etc/yum.repos.d/almalinux*.repo

# 更新系统
dnf update -y

# 安装阿里云助手
wget https://ecs-instance-driver.oss-cn-hangzhou.aliyuncs.com/cloud-assistant/aliyun_assist_latest.rpm
rpm -ivh aliyun_assist_latest.rpm
systemctl enable aliyun.service

2.3 优化配置

bash
# 安装阿里云监控插件
wget https://cms-agent-cn-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/release/cms_go_agent/cms_go_agent_linux-amd64.tar.gz
tar -xzf cms_go_agent_linux-amd64.tar.gz
cd cms_go_agent_linux-amd64
sudo ./install.sh

# 配置NTP同步
dnf install chrony -y
echo "server ntp.aliyun.com iburst" >> /etc/chrony.conf
systemctl enable chronyd
systemctl restart chronyd

# 优化网络性能
echo 'net.core.rmem_max = 134217728' >> /etc/sysctl.conf
echo 'net.core.wmem_max = 134217728' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_rmem = 4096 32768 134217728' >> /etc/sysctl.conf
sysctl -p

3. 腾讯云 CVM 部署

3.1 创建 CVM 实例

bash
# 安装腾讯云 CLI
pip3 install tencentcloud-cli

# 配置访问密钥
tccli configure set secretId YOUR_SECRET_ID
tccli configure set secretKey YOUR_SECRET_KEY
tccli configure set region ap-guangzhou

控制台创建流程:

  1. 实例配置
地域: 广州 / 根据业务需求选择
机型: S5.MEDIUM4 (2核4GB)
镜像: AlmaLinux 9.3
系统盘: 50GB 高性能云硬盘
网络: 私有网络 VPC
带宽: 按量计费 5Mbps
  1. 网络安全配置
bash
# 创建私有网络
tccli vpc CreateVpc \
    --VpcName "AlmaLinux-VPC" \
    --CidrBlock "10.0.0.0/16"

# 创建子网
tccli vpc CreateSubnet \
    --VpcId vpc-xxxxx \
    --SubnetName "AlmaLinux-Subnet" \
    --CidrBlock "10.0.1.0/24" \
    --Zone ap-guangzhou-3

# 创建安全组
tccli cvm CreateSecurityGroup \
    --GroupName "AlmaLinux-SG" \
    --GroupDescription "AlmaLinux Security Group"

3.2 系统优化

bash
# 配置腾讯云镜像源
cat > /etc/yum.repos.d/tencent.repo << 'EOF'
[tencent-base]
name=Tencent Cloud Base
baseurl=https://mirrors.cloud.tencent.com/almalinux/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux

[tencent-appstream]
name=Tencent Cloud AppStream
baseurl=https://mirrors.cloud.tencent.com/almalinux/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux
EOF

# 安装腾讯云监控插件
wget https://mirrors.tencentyun.com/install/monitor_agent/linux/stargate_install.sh
chmod +x stargate_install.sh
./stargate_install.sh

# 配置DNS
echo "nameserver 183.60.83.19" > /etc/resolv.conf
echo "nameserver 183.60.82.98" >> /etc/resolv.conf

4. 华为云 ECS 部署

4.1 实例创建配置

bash
# 安装华为云 CLI
pip3 install huaweicloudsdkcore huaweicloudsdkecs

# 配置华为云环境
export HUAWEICLOUD_SDK_AK="YOUR_ACCESS_KEY"
export HUAWEICLOUD_SDK_SK="YOUR_SECRET_KEY"

控制台配置要点:

  1. 基础设置
区域: 华北-北京四
规格: s6.large.2 (2核4GB)
镜像: AlmaLinux 9.3 64bit
系统盘: 40GB 高IO
网络: 虚拟私有云
安全组: 开放必要端口
  1. 网络优化
bash
# 配置华为云内网DNS
echo "nameserver 100.125.1.250" > /etc/resolv.conf
echo "nameserver 100.125.129.250" >> /etc/resolv.conf

# 配置华为云软件源
sed -i 's|repo.almalinux.org|mirrors.huaweicloud.com/almalinux|g' /etc/yum.repos.d/almalinux*.repo

# 安装华为云服务
dnf install hwcloudsec-plugin -y
systemctl enable hwcloudsec-plugin

4.2 存储优化

bash
# 安装云硬盘挂载工具
dnf install lvm2 -y

# 创建LVM卷组 (假设有额外数据盘 /dev/vdb)
pvcreate /dev/vdb
vgcreate data-vg /dev/vdb
lvcreate -l 100%FREE -n data-lv data-vg

# 格式化并挂载
mkfs.xfs /dev/data-vg/data-lv
mkdir /data
echo '/dev/data-vg/data-lv /data xfs defaults 0 0' >> /etc/fstab
mount -a

5. AWS EC2 部署

5.1 创建 EC2 实例

bash
# 安装 AWS CLI
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

# 配置 AWS 凭证
aws configure
# AWS Access Key ID: YOUR_ACCESS_KEY
# AWS Secret Access Key: YOUR_SECRET_KEY
# Default region name: us-east-1
# Default output format: json

EC2 创建配置:

bash
# 查找 AlmaLinux AMI
aws ec2 describe-images \
    --owners 792107900819 \
    --filters "Name=name,Values=AlmaLinux-9*" \
    --query 'Images[*].[ImageId,Name,CreationDate]' \
    --output table

# 创建密钥对
aws ec2 create-key-pair \
    --key-name almalinux-keypair \
    --query 'KeyMaterial' \
    --output text > almalinux-keypair.pem
chmod 400 almalinux-keypair.pem

# 创建安全组
aws ec2 create-security-group \
    --group-name almalinux-sg \
    --description "AlmaLinux Security Group"

# 开放端口
aws ec2 authorize-security-group-ingress \
    --group-name almalinux-sg \
    --protocol tcp \
    --port 22 \
    --cidr 0.0.0.0/0

5.2 实例启动和配置

bash
# 启动 EC2 实例
aws ec2 run-instances \
    --image-id ami-xxxxx \
    --count 1 \
    --instance-type t3.medium \
    --key-name almalinux-keypair \
    --security-groups almalinux-sg \
    --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=AlmaLinux-Server}]'

# 连接到实例
ssh -i almalinux-keypair.pem ec2-user@YOUR_EC2_PUBLIC_IP

# 安装 AWS CLI 和 CloudWatch 代理
sudo dnf install awscli amazon-cloudwatch-agent -y

# 配置 CloudWatch 代理
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

6. Microsoft Azure 部署

6.1 创建 Azure VM

bash
# 安装 Azure CLI
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

# 登录 Azure
az login

# 创建资源组
az group create \
    --name AlmaLinux-RG \
    --location eastus

# 创建虚拟网络
az network vnet create \
    --resource-group AlmaLinux-RG \
    --name AlmaLinux-VNet \
    --address-prefix 10.0.0.0/16 \
    --subnet-name AlmaLinux-Subnet \
    --subnet-prefix 10.0.1.0/24

6.2 VM 配置和优化

bash
# 创建网络安全组
az network nsg create \
    --resource-group AlmaLinux-RG \
    --name AlmaLinux-NSG

# 添加SSH规则
az network nsg rule create \
    --resource-group AlmaLinux-RG \
    --nsg-name AlmaLinux-NSG \
    --name SSH \
    --protocol tcp \
    --priority 1001 \
    --destination-port-range 22

# 创建虚拟机
az vm create \
    --resource-group AlmaLinux-RG \
    --name AlmaLinux-VM \
    --image AlmaLinux:AlmaLinux-x86_64:9_3:latest \
    --size Standard_B2s \
    --admin-username azureuser \
    --generate-ssh-keys \
    --vnet-name AlmaLinux-VNet \
    --subnet AlmaLinux-Subnet \
    --nsg AlmaLinux-NSG \
    --public-ip-sku Standard

7. 云平台通用优化

7.1 安全配置

bash
# 配置防火墙
systemctl enable firewalld
systemctl start firewalld

# 只开放必要端口
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

# SSH 安全加固
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd

# 安装 fail2ban
dnf install epel-release -y
dnf install fail2ban -y
systemctl enable fail2ban
systemctl start fail2ban

7.2 监控配置

bash
# 安装系统监控工具
dnf install htop iotop nethogs glances -y

# 配置日志轮转
cat > /etc/logrotate.d/cloud-logs << 'EOF'
/var/log/cloud-init*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
}
EOF

# 设置系统资源限制
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
echo "* soft nproc 32768" >> /etc/security/limits.conf
echo "* hard nproc 32768" >> /etc/security/limits.conf

7.3 备份策略

bash
# 创建备份脚本
cat > /root/cloud-backup.sh << 'EOF'
#!/bin/bash

# 云平台备份脚本
BACKUP_DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backup/${BACKUP_DATE}"

# 创建备份目录
mkdir -p $BACKUP_DIR

# 备份系统配置
tar -czf $BACKUP_DIR/system-config.tar.gz \
    /etc /root/.ssh /var/spool/cron 2>/dev/null

# 备份应用数据 (根据实际情况调整)
# tar -czf $BACKUP_DIR/app-data.tar.gz /var/www /opt/apps 2>/dev/null

# 备份数据库 (如果有)
# mysqldump --all-databases > $BACKUP_DIR/mysql.sql 2>/dev/null

# 上传到云存储 (示例: 阿里云OSS)
# ossutil cp $BACKUP_DIR oss://your-bucket/backups/ -r

echo "Backup completed: $BACKUP_DIR"
EOF

chmod +x /root/cloud-backup.sh

# 设置定时备份
echo "0 2 * * * /root/cloud-backup.sh" | crontab -

8. 云原生应用部署

8.1 Docker 环境

bash
# 安装 Docker
dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io -y

# 配置 Docker 镜像加速
mkdir -p /etc/docker
cat > /etc/docker/daemon.json << 'EOF'
{
    "registry-mirrors": [
        "https://registry.cn-hangzhou.aliyuncs.com",
        "https://mirror.ccs.tencentyun.com",
        "https://hub-mirror.c.163.com"
    ]
}
EOF

systemctl enable docker
systemctl start docker

8.2 Kubernetes 集群

bash
# 安装 kubeadm
cat > /etc/yum.repos.d/kubernetes.repo << 'EOF'
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

dnf install kubelet kubeadm kubectl -y
systemctl enable kubelet

# 初始化集群 (主节点)
kubeadm init \
    --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
    --pod-network-cidr=192.168.0.0/16 \
    --service-cidr=10.96.0.0/12

# 配置 kubectl
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

9. 成本优化策略

9.1 实例规格优化

bash
# 监控资源使用情况
cat > /root/resource-monitor.sh << 'EOF'
#!/bin/bash

# CPU 使用率监控
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)
echo "CPU Usage: ${CPU_USAGE}%"

# 内存使用率监控
MEM_USAGE=$(free | grep Mem | awk '{printf("%.2f"), $3/$2 * 100.0}')
echo "Memory Usage: ${MEM_USAGE}%"

# 磁盘使用率监控
DISK_USAGE=$(df -h / | tail -1 | awk '{print $5}' | cut -d'%' -f1)
echo "Disk Usage: ${DISK_USAGE}%"

# 如果资源使用率长期较低,建议降配
if [ $CPU_USAGE -lt 20 ] && [ ${MEM_USAGE%.*} -lt 50 ]; then
    echo "建议考虑降低实例规格以节省成本"
fi
EOF

chmod +x /root/resource-monitor.sh

9.2 自动化运维

bash
# 安装 Terraform
wget https://releases.hashicorp.com/terraform/1.6.0/terraform_1.6.0_linux_amd64.zip
unzip terraform_1.6.0_linux_amd64.zip
sudo mv terraform /usr/local/bin/

# 创建基础设施代码 (示例: 阿里云)
cat > main.tf << 'EOF'
terraform {
  required_providers {
    alicloud = {
      source  = "aliyun/alicloud"
      version = "~> 1.200"
    }
  }
}

provider "alicloud" {
  region = "cn-hangzhou"
}

resource "alicloud_instance" "almalinux" {
  availability_zone = "cn-hangzhou-b"
  instance_name     = "almalinux-terraform"
  image_id          = "almalinux_9_3_x64_20G_alibase"
  instance_type     = "ecs.c6.large"
  security_groups   = [alicloud_security_group.default.id]
  vswitch_id        = alicloud_vswitch.default.id
}
EOF

10. 故障排除和最佳实践

10.1 常见问题解决

bash
# 网络连接问题
# 检查安全组配置
# 检查路由表配置
# 验证DNS解析

# 性能问题诊断
iostat -x 1 5    # 磁盘I/O
vmstat 1 5       # 系统资源
netstat -i       # 网络接口

# 云平台特定问题
# 检查云助手状态
systemctl status aliyun.service  # 阿里云
systemctl status qcloud-assist   # 腾讯云

10.2 安全最佳实践

bash
# 定期安全扫描
dnf install lynis -y
lynis audit system

# 配置入侵检测
dnf install aide -y
aide --init
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

# 设置定期检查
echo "0 3 * * * /usr/sbin/aide --check" | crontab -

通过本指南,您可以在各大云计算平台上成功部署 AlmaLinux,并进行相应的优化配置,确保系统在云环境中的稳定性和安全性。

基于 MIT 许可发布