一、课程核心知识体系概述
RHCA-RH358 课程聚焦红帽企业 Linux 环境下的服务管理与自动化实现,涵盖以下关键领域:
系统服务管理:systemd 架构与单元控制
网络服务配置:动态网络管理与防火墙策略
存储服务优化:LVM 与 Stratis 高级存储方案
安全服务实施:SELinux 与证书管理
自动化工具链:Ansible 与 Cockpit 集成
二、systemd 服务管理精要
2.1 systemd 单元文件结构解析
# /etc/systemd/system/example.service
[Unit]
Description=Custom Service Example
After=network.target
[Service]
Type=notify
ExecStart=/usr/local/bin/service-daemon
Restart=on-failure
TimeoutSec=300
[Install]
WantedBy=multi-user.target
关键参数说明:
Type:定义服务类型(simple, forking, notify 等)
Restart:配置服务失败时的重启策略
TimeoutSec:设置启动/停止超时阈值
2.2 服务生命周期管理命令对比
操作类型 | 传统命令 | systemd 命令 | 备注 |
---|---|---|---|
启动服务 | service httpd start |
systemctl start httpd |
|
设置自启 | chkconfig httpd on |
systemctl enable httpd |
|
查看状态 | service httpd status |
systemctl status httpd |
新增详细日志查看功能 |
重载配置 | - | systemctl daemon-reload |
修改单元文件后必须执行 |
三、网络服务自动化配置
3.1 NetworkManager 高级配置
# 创建动态以太网连接配置
nmcli connection add \
type ethernet \
con-name "dynamic-eth0" \
ifname eth0 \
ipv4.method auto \
ipv6.method disabled
# 配置静态路由
nmcli connection modify "dynamic-eth0" \
+ipv4.routes "192.168.100.0/24 10.0.0.1"
3.2 firewalld 服务管理
# 创建自定义区域
firewall-cmd --permanent --new-zone=webserver
firewall-cmd --permanent --zone=webserver --add-service=http
firewall-cmd --permanent --zone=webserver --add-service=https
firewall-cmd --permanent --zone=webserver --add-port=8080/tcp
# 应用配置到特定接口
firewall-cmd --permanent --zone=webserver --change-interface=eth1
firewall-cmd --reload
四、存储服务自动化管理
4.1 LVM 自动化扩展方案
# 自动扩展逻辑卷脚本
#!/bin/bash
VG_NAME="datavg"
LV_NAME="datalv"
THRESHOLD=80
INCREMENT=5G
USAGE=$(df -h | grep "/data" | awk '{print $5}' | cut -d'%' -f1)
if [ $USAGE -gt $THRESHOLD ]; then
lvextend -L +${INCREMENT} /dev/${VG_NAME}/${LV_NAME}
xfs_growfs /data
logger "Auto extended ${LV_NAME} by ${INCREMENT}"
fi
4.2 Stratis 存储池管理
# 创建 Stratis 存储池
stratis pool create pool1 /dev/sdb /dev/sdc
# 创建加密文件系统
stratis filesystem create --unlock-method keyring pool1 fs1
# 自动精简配置
stratis fs set-thin-provisioning pool1/fs1
五、Cockpit 可视化自动化
5.1 Web 控制台集成功能
实时性能监控:
多维度资源使用图表
交互式性能分析工具
集中式日志查看:
时间序列日志浏览
关键词过滤与标记
批量操作界面:
多主机并行命令执行
可视化服务状态管理
5.2 Cockpit API 自动化示例
// 通过Cockpit API管理服务
cockpit.spawn(["systemctl", "status", "httpd"])
.then(function(data) {
console.log("Service status: " + data);
})
.catch(function(error) {
console.error("Error: " + error.message);
});
// 远程文件编辑
cockpit.file("/etc/httpd/conf/httpd.conf")
.modify(function(content) {
return content.replace(/Listen 80/, "Listen 8080");
});