一、AlmaLinux:CentOS的精神续作,云环境的实用选择
你可能知道,2021年 CentOS 基金会宣布转向 CentOS Stream,这让大量依赖稳定企业级 Linux 的用户陷入困惑。这时候,AlmaLinux 诞生了——它完全免费、由社区驱动,目标是提供与 RHEL(Red Hat Enterprise Linux)二进制兼容的替代品,完美继承了 CentOS 的稳定性和可靠性。
如果你是运维、开发者或学生,想要找一个既“老派”又“现代”的 Linux 发行版来部署在云服务器上,AlmaLinux 是目前最值得考虑的选择之一。
下面这篇指南,带你从零开始,一步步在主流云服务器(如阿里云、腾讯云、AWS、Google Cloud 等)上快速部署一个可用的 AlmaLinux 系统,不玩虚的,全是干货!
二、为什么要选择 AlmaLinux?——先搞懂它的价值
✅ 1. 完全免费开源
AlmaLinux 是真正免费的,不像某些商业 RHEL 支持包要收费。你甚至可以把它当作“白嫖”RHL 的体验系统。
✅ 2. 与 RHELBinary 兼容
这意味着你在 CentOS 或 RHEL 上编译的程序、安装的服务包(比如 httpd, postgresql),绝大多数都能直接在 AlmaLinux 上跑,不用改配置、不用重打包。
✅ 3. 社区活跃,更新及时
由 CloudLinux 团队主导,背靠社区贡献,安全补丁发布速度非常快,甚至比官方还快。
✅ 4. 支持云环境友好
各大云服务商都提供了 AlmaLinux 的系统镜像,一键部署,省去了你从头安装和配置的时间成本。
三、准备工作:选一台合适的云服务器
你不需要买最贵的机器,但建议至少满足以下最低配置(适合学习、开发、轻量生产):
| 项目 | 推荐配置 |
|---|---|
| CPU | 2 vCPU |
| 内存 | 4 GB |
| 存储 | 50 GB SSD(系统盘)+ 可选数据盘 |
| 带宽 | 1 Mbps 起步(够日常 SSH 和 Web 访问) |
| 操作系统镜像 | AlmaLinux 8 / 9 x86_64 |
💡 小贴士:如果你只是学习或测试,可以用阿里云/腾讯云的“学生机”,每月几十块钱就能搞定;如果是生产环境,记得选更高规格并开启自动备份功能。
我们以阿里云 ECS为例进行演示(其他云平台操作逻辑类似):
- 登录 阿里云控制台
- 创建实例 → 选择地域(选靠近你的地方,降低延迟)→ 网络类型:专有网络 VPC
- 镜像选择:搜索 “AlmaLinux”,找到对应版本(如 AlmaLinux 9.3 x86_64)
- 实例规格:选择
ecs.t5-lc1m2.small(2核2GB)或更高 - 系统盘:选择 SSD,容量 ≥ 50GB
- 安全组:务必开放端口 22(SSH) 和 80/443(Web),否则你连不上服务器!
- 设置登录方式:推荐使用“密钥对”而非密码(更安全)
- 完成后点击“立即购买”,等待几分钟即可开机成功
四、连接服务器:用 SSH 远程登录到 AlmaLinux
假设你已经拿到公网 IP 地址,并且上传了自己的 SSH 私钥(例如 alibaba_key.pem),接下来你可以用下面命令连接:
chmod 600 alibaba_key.pem # 设置文件权限为只读
ssh -i alibaba_key.pem root@your_server_ip
📌 注意:默认用户名通常是
root,但你也可以创建一个普通用户(见后面章节)。
如果弹出提示说“Are you sure you want to continue connecting?”,输入 yes 即可。然后就会进入终端界面,看到类似这样的欢迎信息:
Welcome to AlmaLinux!
Kernel: 5.x.x-alma.x86_64 on an x86_64
Copyright © Red Hat, Inc. and others. All rights reserved.
You have mail in /var/spool/mail/root
Last login: Mon Apr 5 10:23:45 2025 from your_local_ip
[root@localhost ~]#
恭喜你!你已经成功进入 AlmaLinux 的世界了!
五、初始配置:让系统更安全、更顺手
刚登录进来的时候,很多设置都是默认状态,我们需要做几件事来提升可用性和安全性:
🔐 1. 修改 root 密码(可选,但不推荐长期使用 root)
虽然直接 root 登录方便,但从安全角度建议禁用 root 密码登录,改用普通账户 + sudo 权限。
passwd root
按提示输入新密码两次即可(不会显示字符,别慌)。
👤 2. 创建一个普通用户(强烈建议!)
useradd -m -s /bin/bash your_username
sudo passwd your_username
然后赋予该用户 sudo 权限:
visudo
在打开的文件中添加这一行(把 your_username 换成实际名字):
your_username ALL=(ALL) ALL
保存退出后测试一下:
su - your_username
sudo whoami # 应该返回 root
✅ 如果没报错,说明配置成功!
🛡️ 3. 关闭不必要的服务 & 加固防火墙
AlmaLinux 默认使用 firewalld 作为防火墙工具。你可以查看当前状态:
systemctl status firewalld
关闭它(如果你打算自己配置 iptables 或其他策略):
sudo systemctl disable --now firewalld
或者保留它并开放必要端口:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
同时检查是否有自动运行的无用服务:
systemctl list-unit-files --type=service | grep enabled
对于像 cups-print-helper, avahi-daemon, bluetooth 这类没用到且容易出问题的服务,可以手动关掉:
sudo systemctl stop cups.service
sudo systemctl disable cups.service
六、软件管理与基础安装:动手干活前先把工具箱准备好
AlmaLinux 使用 dnf 作为包管理器(继承自 yum),非常方便我们来安装各类工具。
先更新系统至最新状态:
sudo dnf update -y
sudo dnf upgrade -y
安装一些常用开发工具和命令行增强项:
sudo dnf install epel-release -y
sudo dnf install htop nano unzip wget curl git make gcc libffi-devel openssl-devel python3 python3-pip vim telnet ncurses-devel zlib-devel bzip2 -y
这些命令分别做了什么?
epel-release: 扩展源仓库,提供更多第三方软件htop: 图形化进程查看器(比 top 更好看)nano/vim: 文本编辑器(二选一)unzip/wget/curl: 下载解压文件利器git: 版本控制必备make/gcc/libffi...: 编译安装源码所需的依赖库
安装完成后验证是否生效:
which htop # 应该输出 /usr/bin/htop
python3 --version
pip3 --version
一切正常的话,你就可以放心继续下一步啦~
七、Web 服务搭建实战:跑个网站试试手
既然是在云服务器上部署操作系统嘛,那当然要搞点实际用途喽 😄
我们这里示范如何快速搭建一个简单的 Nginx Web 站点。
安装 Nginx:
sudo dnf install nginx -y
启动服务并设为开机自启:
sudo systemctl enable --now nginx
查看运行状态:
sudo systemctl status nginx
你应该能看到绿色的 active (running) 字样表示正常。
接着浏览器访问你的公网 IP 地址(例如 http://your_public_ip/),你会看到默认的 “Welcome to nginx!” 页面。
如果你想换自己的网页内容呢?简单替换默认主页:
cd /usr/share/nginx/html
index.html
echo "<h1>Hello World from AlmaLinux!</h1>" > index.html
刷新网页就能看到自定义内容啦~
当然还可以配 HTTPS,配合 Let’s Encrypt 获取免费 SSL 证书就行,这部分稍后再展开讲。
八、自动化脚本部署神器 Ansible:批量管理多台机器
当你面对不止一台服务器的时候,一个个敲命令就太累了……这时候就需要神器来了——Ansible!
它基于 YAML 配置文件,通过 SSH 远程执行任务,无需在被控端安装额外 agent,非常适合中小规模集群管控。
比如在两台服务器上同时安装 PostgreSQL:
Step 1:准备 inventory 文件(hosts.ini)
[webservers]
server1.example.com ansible_user=root
server2.example.com ansible_user=root
[databases]
db1.example.com ansible_user=myapp
Step 2:编写 playbook playbook.yml
---
- name: Install PostgreSQL on AlmaLinux
hosts: databases
become: yes
tasks:
- name: Update repo
dnf:
state: latest
- name: Install postgresql
dnf:
name: postgresql-server
state: present
- name: Initialize DB cluster
command: postgresql-setup initdb
- name: Start service
service:
name: postgresql
state: started
enabled: yes
Step 3:运行部署
ansible-playbook playbook.yml
几分钟后,所有指定节点都会完成 Postgres 安装并自动启动。是不是超级爽?
你也可以把这套流程封装成模板,将来换到 Apache/Tomcat/Nuxt/Vue/Nginx 等项目只需改一行配置 😎
九、进阶技巧:容器化 + Docker 加持,打造现代化微服务架构时代背景不多说,现在谁还用传统方式跑应用?Docker 已经成为标准搭配。
在 AlmaLinux 上安装 Docker CE:
sudo dnf install docker.io -y
sudo systemctl enable --now docker
sudo usermod -aG docker your_username
logout && relogin # 才能生效组变更
验证是否装好:
docker run hello-world
看到 Hello from Docker! 就说明成功了。
举个例子,你想跑一个 WordPress 博客站?
docker run --name wp-web -d -p 8080:80 wordpress
访问 http://your_ip:8080,哇,WordPress 安装向导已经跳出来了!
再配合 MySQL 容器一起组成完整栈:
docker run --name db -e MYSQL_ROOT_PASSWORD=secret mysql:8.0-docker run --link db:db --name wp-web -e WORDPRESS_DB_HOST=db -e WORDPRESS_DB_USER=wpuser -e WORDPRESS_DB_PASSWORD=wp_pass -p 80:wordpresswordpress
这样就能实现独立数据库支撑的网站部署模式啦!
十、监控告警体系建立:别让故障悄悄发生
线上跑的机器可不能两眼一抹黑,你得知道它什么时候宕机、资源是否紧张、日志有没有异常错误…
推荐几种轻量级方案:
A️️️. Prometheus + Grafana 经典组合
适合中大型团队,功能强大但学习曲线略陡。
安装步骤略复杂,可参考官网文档:https://prometheus.io/docs/introduction/install/
简单示意:
docker run -d --name prometheus -p 9090:9090 prom/prometheus:v2.47.1
docker run -d --name grafana -p 3000:3000 grafana/grafana:latest
访问 http://ip:3000 登录(admin/admin),导入大盘 ID 如 GKE/AWS/Azure 等预设模板开始可视化展示各项指标。
B️️️️. Zabbix 老牌监控系统,功能丰富但配置繁琐。适合已有历史包袱的企业迁移使用。
C️️️️️. SkyWalking / Jaeger 等专门针对分布式追踪设计的解决方案,适用于 SpringCloud/Kubernetes 场景下的性能瓶颈分析。
总之根据团队技术选型和个人喜好挑选最适合的一条路径落地下去才是王道🙏🏻
十一、结语:从新手到高手只差这一步行动力
你现在已经掌握了如何在云服务器上从零开始构建一个稳定高效的 AlmaLinux 运行环境,涵盖了从基础连接到高级编排的全套知识体系。记住一句话:纸上得来终觉浅,绝知此事要躬行。
不要停留在理论层面,立刻动手尝试一次完整的 deployment cycle —— 哪怕只是一个简单的 LAMP/WNMP 框架也能让你收获满满成长体验。下次我们再聊聊怎么把它放进 CI/CD Pipeline 里实现自动化交付流程哟~
