1. 项目概述
最近在准备RHCSA认证考试,需要搭建一个Red Hat Enterprise Linux 9.7的实验环境。作为Linux系统管理员,熟练掌握虚拟化环境部署和系统优化是必备技能。本文将详细记录从零开始部署RHEL 9.7虚拟机的完整过程,包括虚拟机创建、系统安装、安全配置、远程连接管理以及软件仓库配置等关键步骤。
对于Linux运维人员来说,一个稳定高效的开发测试环境至关重要。通过VMware Workstation搭建RHEL虚拟机,不仅可以模拟真实服务器环境,还能随时创建快照和回滚,非常适合学习和实验。本次部署将重点关注以下几个方面:
- 虚拟机资源配置的合理性
- 系统分区方案的最佳实践
- 安全策略的优化调整
- 软件仓库的高效配置
- 常用开发工具的安装
2. 虚拟机创建与配置
2.1 VMware虚拟机创建
创建虚拟机时,合理的资源配置对后续使用体验影响很大。以下是经过多次实践验证的推荐配置:
- 处理器:1个CPU,2个核心(适合大多数开发测试场景)
- 内存:2GB(RHEL 9最小要求,图形界面运行流畅)
- 磁盘:20GB(系统分区15GB,剩余空间可根据需要分配)
- 网络:NAT模式(方便主机访问互联网)
提示:如果物理机配置允许,建议将内存提升至4GB,特别是在需要运行多个服务或容器时。
创建过程中有几个关键选择需要注意:
- 选择"稍后安装操作系统",避免自动安装可能带来的配置限制
- 磁盘类型选择SATA而非SCSI,兼容性更好
- 删除不必要的硬件(如USB控制器、声卡)可以减少资源占用
2.2 系统安装与分区
RHEL 9.7安装界面提供了图形化安装程序,但分区方案建议选择"自定义"以获得更灵活的控制。以下是推荐的基础分区方案:
| 挂载点 | 大小 | 文件系统类型 | 说明 |
|---|---|---|---|
| /boot | 1GB | xfs | 启动分区 |
| / | 10GB | xfs | 根分区 |
| /home | 5GB | xfs | 用户目录 |
| swap | 2GB | swap | 交换空间 |
实际项目中,我曾遇到/boot分区过小导致内核更新失败的问题。因此建议/boot分区至少保留1GB空间,特别是计划长期使用的系统。
安装完成后,务必设置root密码并创建一个普通用户。安全实践中,日常操作应使用普通用户,仅在需要时通过sudo提权。
3. 系统安全配置优化
3.1 防火墙管理
RHEL 9默认使用firewalld作为防火墙管理工具。对于实验环境,可以暂时关闭防火墙以简化配置:
bash复制systemctl stop firewalld
systemctl disable firewalld
但在生产环境中,建议配置精确的防火墙规则而非完全关闭。例如只开放必要的SSH端口:
bash复制firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload
3.2 SELinux配置
SELinux是RHEL的重要安全特性,但在学习阶段可能会带来额外复杂度。修改/etc/selinux/config文件将其设置为disabled:
bash复制vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled,保存后重启生效。
经验分享:修改SELinux配置后,有时会发现系统仍处于enforcing状态。这是因为某些情况下需要额外执行
touch /.autorelabel创建标记文件,让系统在下次启动时重新标记文件上下文。
4. 远程管理配置
4.1 SSH服务优化
RHEL 9默认已安装并启用SSH服务。为提高安全性,建议修改/etc/ssh/sshd_config:
bash复制PermitRootLogin no
PasswordAuthentication yes # 实验环境可开启,生产环境应使用密钥认证
修改后重启SSH服务:
bash复制systemctl restart sshd
4.2 Xshell连接配置
获取虚拟机IP地址后,可以使用Xshell等工具远程连接。关键步骤包括:
- 使用
ip a命令查看虚拟机IP - 在Xshell中新建会话,输入IP和端口(默认22)
- 使用root或普通用户登录
避坑指南:如果无法连接,首先检查虚拟机网络配置是否正确,其次确认防火墙是否放行了SSH端口。NAT模式下,虚拟机的IP通常以192.168.x.x开头。
5. 软件仓库与工具安装
5.1 配置阿里云镜像源
RHEL官方源在国内访问速度较慢,替换为阿里云镜像可以显著提升软件下载速度:
-
备份原有repo文件:
bash复制mkdir /etc/yum.repos.d/backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ -
下载阿里云repo文件:
bash复制
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo -
生成缓存:
bash复制
dnf makecache
5.2 基础开发工具安装
安装常用开发工具链:
bash复制dnf groupinstall "Development Tools"
dnf install -y epel-release # 安装EPEL仓库
dnf install -y vim wget curl net-tools
特别推荐安装的实用工具:
htop:增强版系统监控工具tmux:终端复用器tree:目录树状显示ncdu:磁盘空间分析工具
5.3 软件更新策略
保持系统更新是安全运维的重要环节,但生产环境需要谨慎:
bash复制dnf update -y # 更新所有软件包
dnf upgrade -y # 升级系统版本
建议在更新前创建虚拟机快照,特别是核心业务服务器。我曾遇到过因内核更新导致驱动不兼容的情况,快照回滚功能节省了大量故障排查时间。
6. 系统性能调优
6.1 交换空间优化
默认swap配置可能不适合所有场景,可以通过以下方式调整:
-
查看当前swap使用:
bash复制
free -h -
创建额外swap文件(当物理内存不足时):
bash复制dd if=/dev/zero of=/swapfile bs=1M count=2048 chmod 600 /swapfile mkswap /swapfile swapon /swapfile -
添加到/etc/fstab实现开机自动挂载:
bash复制echo '/swapfile swap swap defaults 0 0' >> /etc/fstab
6.2 内核参数调整
编辑/etc/sysctl.conf优化内核参数:
bash复制vm.swappiness = 10 # 减少swap使用倾向
net.ipv4.tcp_fin_timeout = 30 # 缩短TCP连接超时
应用修改:
bash复制sysctl -p
7. 常见问题排查
7.1 网络连接问题
症状:虚拟机无法访问外网
排查步骤:
- 检查虚拟机网络适配器是否为NAT模式
- 验证DNS配置:
cat /etc/resolv.conf - 测试基础连接:
ping 8.8.8.8和ping www.baidu.com
7.2 软件安装失败
症状:dnf install报错"No available packages"
解决方案:
- 清理缓存:
dnf clean all - 重新生成缓存:
dnf makecache - 检查仓库是否启用:
dnf repolist all
7.3 Xshell连接超时
症状:能够ping通但无法SSH连接
排查流程:
- 确认SSH服务运行状态:
systemctl status sshd - 检查防火墙规则:
firewall-cmd --list-all - 验证SELinux是否阻止连接:
ausearch -m avc -ts recent
8. 进阶配置建议
8.1 自动化部署准备
为方便后续快速重建环境,可以:
-
导出已安装软件列表:
bash复制
dnf list installed > installed_packages.txt -
备份重要配置文件:
bash复制
tar czvf etc_backup.tar.gz /etc -
创建虚拟机模板,后续可直接克隆使用
8.2 监控与日志
基础监控配置:
-
安装sysstat收集系统指标:
bash复制dnf install -y sysstat systemctl enable --now sysstat -
配置日志轮转:
bash复制
vim /etc/logrotate.conf -
安装并配置netdata实时监控:
bash复制
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
经过上述步骤,我们建立了一个功能完善、性能优化的RHEL 9.7实验环境。在实际操作中,建议对每个关键步骤创建虚拟机快照,这样在出现问题时可以快速回退到稳定状态。