一、为什么 2012 年要聊 CentOS 7
严格说 CentOS 7.0 正式发布是 2014-07-07,本文写于 2012-12-15,内容是基于 7.x 早期内测 / RHEL 7.0 GA(2014-06-10)的实操整理。之所以放这个时间点,是因为当时国内大量运维在测试机器上尝鲜 CentOS 7 的 init 切换(systemd 取代 init)、/etc/os-release 标准化等变化,到了 2014-07 正式发版后这些经验完全适用。
CentOS 7 的"最小化安装"(Minimal Install)只给 ~200 个包,没有桌面、没有图形、连 wget / net-tools 都没有。第一次登录后第一件事往往是装上常用工具、配置国内 yum 源、关掉不需要的服务。本篇把这些零散动作整理成一份"上桌清单"。
适用版本:CentOS 7.0 ~ 7.9(2020-11 EOL,2024-06-30 进入 ELS 阶段仅安全更新)
二、查 IP、装 wget
最小化安装的机器没有 ifconfig(net-tools 没了),先用 ip 命令看 IP:
| |
装 wget 准备下载源:
| |
三、配置国内 yum 源
最小化装的机器 yum 走的是 CentOS 官方源,国内外都慢。换国内源是标准动作。
3.1 阿里云
| |
3.2 网易 163
| |
3.3 EPEL 源
EPEL(Extra Packages for Enterprise Linux)是 CentOS 之外的常用源,装 python-pip 之类要靠它:
| |
验证仓库:
| |
四、装常用工具
最小化安装默认没装的几个常用工具:
| |
五、关掉 firewalld / selinux / swap
容器化之前,传统 LAMP / LNMP 服务器的标准动作是关掉防火墙和 swap。注意:如果你准备上 Kubernetes,swap 千万不能关——kubelet 从 1.8 起会拒绝在启用 swap 的机器上启动(除非显式配置 --fail-swap-on=false)。
5.1 firewalld
| |
5.2 selinux
| |
5.3 swap
| |
六、CentOS 7 忘记 root 密码的救援流程
这是 2012-2015 那几年最高频的运维求助场景。CentOS 7.9(2020-09 发布)的单用户模式救援流程:
重启服务器,开机引导时按
e进入编辑找到
linux16(早期版本是linux)开头的那一行,把ro改成rw init=/sysroot/bin/sh按
Ctrl + x,用单用户模式启动切到原系统:
1chroot /sysroot改密码:
1passwd root更新 SELinux 标签(重要,不执行可能登录失败):
1touch /.autorelabel退出:
1 2exit reboot
坑提醒:第 6 步的
/.autorelabel在 SELinux 开启的环境下必须执行;如果当时setenforce 0临时关过 SELinux,可以跳过这一步。
七、装 Docker 的早期姿势(2015-2016 年)
CentOS 7 早期装 Docker 还分两条路线:
7.1 走 get.docker.com 一键脚本
| |
这个脚本在 2015-2017 年是事实标准,但后来被官方移除了 docker-compose 集成。
7.2 走 yum 官方源
| |
想指定老版本(如
docker-ce-18.09.1):
| |
八、Python 2 与 Python 3 共存
CentOS 7 默认 python 指向 python2.7,而 yum / firewalld 等系统工具强依赖 Python 2.7,绝对不能卸载。开发用 Python 3 的标准做法是源码编译一份 /usr/local/python3,软链接 python3 出去。
| |
make altinstall 而不是 make install 是为了不覆盖系统 python 软链接——这点在 CentOS 7 上尤其重要。
九、SSH 允许 root 登录
| |
生产环境强烈不推荐开启 root 远程登录,应该走
ssh-keygen+~/.ssh/authorized_keys。
十、自动时间同步
| |
chrony 是 CentOS 7 默认装的,但 ntpdate 在内网环境更省事。
十一、下一步
- 想换更新的发行版(CentOS 7 已经在 2024-06-30 进入 ELS 阶段)→ 迁移到 Rocky Linux 9 或 AlmaLinux 9(API 兼容,迁移成本最低)
- 想做远程批量装机 → 看 PXE + kickstart,本篇不展开
- 想用 ELRepo 升级内核 → 见
2015-03-15 CentOS 7 内核升级实战 - 想把单用户救援流程做成一键脚本 → 用 Rescue Mode Automation 的
grub2-setpassword+ 自定义脚本
参考资料
2024 视角:CentOS 7 已 EOL,Rocky / Alma 9 才是"未来"
本文写于 2012-12-15(实际是基于 2014-07 CentOS 7 GA 前的"早期内测"经验)。2024 视角下:
一、CentOS 7 正式 EOL 2024-06-30
- 2020-08-06:CentOS 8 提前 EOL 公告,CentOS 7 延寿到 2024-06-30。
- 2024-06-30:CentOS 7 正式 EOL。
- 2024-06-30 后:进入 **ELS(Extended Lifecycle Support)**阶段,仅付费 Red Hat 客户能拿到安全更新。
- 2024-12-31:CentOS 7 ELS 阶段结束(部分渠道可付费延长到 2026-06-30)。
- 2024 视角下:新项目绝对不要再装 CentOS 7。
二、CentOS 7 → Rocky / Alma 9 迁移工具
- migrate2rocky(Rocky Linux 官方):
| |
- almalinux-deploy(AlmaLinux 官方):
| |
- elevate(CIQ 维护,CentOS 7 → Rocky Linux 8/9):
| |
三、CentOS 7 已消失的服务
ntpdate/ntpd:被chronyd取代(CentOS 7 起就是)。iptables(部分):被nftables取代(CentOS 8 起)。system-config-network-tui:被nmtui取代。setuptool:被system-config-*取代。- Python 2.7:2020-01-01 EOL,不能装(除非装到 docker 容器)。
- MySQL 5.x / MariaDB 5.5:EOL 多年,不能装(用 MySQL 8 / MariaDB 10.11)。
四、CentOS 7 时代的"救援模式"在 9 已不适用
本文给的"按 e → 改 ro 为 rw init=/sysroot/bin/sh“流程:
- CentOS 9 / RHEL 9:grub2 启动菜单有所变化(按
e后多一步 BLSC 验证)。 - UEFI Secure Boot 默认开启:单用户模式可能进不去。
- 2024 救援姿势:
- 方法 1:从 rescue CD / USB 启动(最稳)
- 方法 2:在云控制台用 VNC 救援连接(阿里云 / 华为云 / AWS 都支持)
- 方法 3:临时关掉 SELinux:
setenforce 0(如果能进系统)
| |
五、CentOS 7 → 9 的"主要 API 变化”
- Python 3.6 → 3.12(CentOS 9 默认)。
- systemd 219 → 252+(大量新指令)。
- OpenSSH 7.4 → 8.x → 9.x(强制 rsa-sha2-256/512,禁 DSA)。
- OpenSSL 1.0.2 → 3.0+(默认安全级别提高)。
- GCC 4.8 → 11+(C++17 / C++20 默认)。
- glibc 2.17 → 2.34(老二进制不能直接跑)。
- firewalld 0.x → 1.x(配置变化)。
六、CentOS 7 的"运维遗物"——/etc/rc.local
2012 那篇提到 CentOS 7 早期还支持 rc.local。CentOS 9 已经移除:
- 替代方案:systemd service:
| |
| |
七、CentOS 7 的 EPEL 源 2024 现状
- EPEL 7 仓库:2024-06-30 停止更新。
- EPEL 9 仓库:仍在持续更新。
- 迁 EPEL 配置(迁到 Rocky / Alma 9 后自动适配)。
- 国内镜像(aliyun / 清华)2024 仍在同步 EPEL 7(用于"历史项目"),但新装不要用。
八、2024 仍"在跑" CentOS 7 的真实情况
- 中国中小企业的"老服务器":2024 还有 30-40% 跑 CentOS 7。
- 原因:迁移成本 + 老应用兼容性 + 团队不熟悉 systemd 241+。
- 风险:
- 无安全更新(2024-07 之后)
- 新软件不能装(新版本需要 GLIBC 2.28+)
- 容器运行时受限(Docker 20.10+ 不支持 CentOS 7)
- 建议:用
migrate2rocky迁移到 Rocky Linux 9——10 分钟搞定。
九、CentOS Stream:争议中的"未来"
- CentOS Stream 8/9(2021+):RHEL 的"上游开发版"——比 RHEL 早 1-2 个 minor 版本。
- 优点:永远"新",能用到 RHEL 还没 GA 的特性。
- 缺点:可能不稳定(生产环境慎用)。
- 2024 主流:不用 CentOS Stream,直接用 Rocky / Alma / Oracle。
