一、前置认知:为什么需要 Kickstart?
在数据中心运维或频繁构建测试环境的场景下,手动安装Linux系统效率低下且容易出错。Kickstart作为Red Hat系列Linux(包括RHEL、CentOS、Rocky Linux等)的官方自动化安装工具,可以通过预定义的配置文件,全自动完成磁盘分区、软件包选择、用户配置等安装步骤。掌握它,能极大提升运维效率,是实现标准化与自动化运维的关键一步。
二、环境准备
1. 基础环境要求
- 部署服务器:一台已安装CentOS 7/Rocky Linux 7或以上版本的机器(虚拟机即可),作为提供安装服务的控制端。
- 待装机器:支持PXE网络启动的物理机或虚拟机,需与部署服务器处于同一局域网段。
- 网络配置:确保网络畅通,需关闭防火墙或开放相关端口(DHCP: 67/68 UDP;TFTP: 69 UDP;HTTP: 80 TCP)。
2. 安装核心依赖包
登录部署服务器,执行以下命令安装必要服务:
sudo dnf install -y dhcp-server tftp-server httpd syslinux
安装完成后,启动服务并设置为开机自启:
sudo systemctl enable --now dhcpd tftp httpd
sudo systemctl status dhcpd tftp httpd # 验证服务状态
三、分步搭建指南
第一步:准备系统镜像
-
下载与存放镜像:将目标系统(如Rocky Linux 9)的ISO镜像上传至HTTP服务目录。
sudo mkdir -p /var/www/html/iso
# 假设已通过wget或工具将镜像置于此处
# sudo wget -P /var/www/html/iso https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.3-x86_64-minimal.iso
-
挂载镜像:将ISO镜像挂载,使其内容可通过Web访问。
sudo mkdir -p /var/www/html/rocky9
sudo mount /var/www/html/iso/Rocky-9.3-x86_64-minimal.iso /var/www/html/rocky9
为防止重启后失效,将挂载信息写入/etc/fstab:
echo "/var/www/html/iso/Rocky-9.3-x86_64-minimal.iso /var/www/html/rocky9 iso9660 defaults 0 0" | sudo tee -a /etc/fstab
第二步:配置DHCP服务
DHCP服务为客户端分配IP地址,并指引其获取启动文件。
-
编辑DHCP配置文件:
sudo vim /etc/dhcp/dhcpd.conf
-
清空原有内容,替换为以下配置(请根据实际网络环境修改):
subnet 192.168.1.0 netmask 255.255.255.0 { # 您的局域网段
range 192.168.1.100 192.168.1.200; # IP地址池
option routers 192.168.1.1; # 网关地址
option domain-name-servers 8.8.8.8, 114.114.114.114; # DNS服务器
next-server 192.168.1.5; # 部署服务器的IP地址(关键!)
filename "pxelinux.0"; # PXE引导文件名
}
-
重启DHCP服务使配置生效:
sudo systemctl restart dhcpd
第三步:配置TFTP与PXE引导
TFTP用于向客户端传输轻量的启动文件。
-
复制引导文件:
sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg
sudo cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
sudo cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
sudo cp /var/www/html/rocky9/images/pxeboot/vmlinuz /var/lib/tftpboot/
sudo cp /var/www/html/rocky9/images/pxeboot/initrd.img /var/lib/tftpboot/
-
创建PXE启动菜单:
sudo vim /var/lib/tftpboot/pxelinux.cfg/default
输入以下内容(确保IP地址指向您的部署服务器):
default menu.c32
timeout 30
prompt 0
label autoinstall
menu label ^Auto Install Rocky Linux 9
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.1.5/rocky9 inst.ks=http://192.168.1.5/ks.cfg
此配置指定了安装源和Kickstart自动应答文件的位置。
### 第四步:创建Kickstart自动应答文件
这是自动化安装的核心,定义了所有安装参数。
1. **生成基础配置文件**:系统首次安装后会在`/root`目录下生成一个`anaconda-ks.cfg`文件,可作为模板。将其复制到HTTP目录供客户端访问。
```bash
sudo cp /root/anaconda-ks.cfg /var/www/html/ks.cfg
- 编辑并优化ks.cfg文件:
sudo vim /var/www/html/ks.cfg
以下是一个适用于新手的简化配置示例,您可根据需要调整:
# 版本与安装模式
install
url --url="http://192.168.1.5/rocky9"
系统基本设置
lang en_US.UTF-8
keyboard --vckeymap=us --xlayouts='us'
timezone Asia/Shanghai --isUtc
网络配置
network --bootproto=dhcp --device=eth0 --onboot=on --ipv6=auto
安全设置(生产环境请使用加密密码)
rootpw --plaintext 123456
firewall --disabled
selinux --disabled
磁盘分区(自动LVM分区,新手推荐)
autopart --type=lvm
选择安装的软件包组
%packages
@^minimal-environment
vim-enhanced
wget
%end
安装后执行的脚本(可选)
%post
echo "Kickstart installation completed!" > /root/install.log
%end
**重要提醒**:示例中的`root`密码为明文弱密码,仅用于测试。生产环境务必使用`openssl passwd -1`生成加密密码串进行替换。
## 四、实战测试与验证
1. **启动客户端**:将待安装的物理机或虚拟机设置为从网络(PXE)启动。
2. **自动安装**:客户端启动后,将自动从DHCP获取IP,加载PXE菜单,并开始执行全自动安装。整个过程无需人工干预。
3. **验证结果**:等待约10-20分钟(视硬件性能),系统安装完毕。使用配置的root密码登录,检查系统状态及`/root/install.log`文件,确认安装成功。
通过以上步骤,您就成功搭建了一套基于Kickstart和PXE的Linux自动化部署环境。这套方法是现代[DevOps实践](https://yunpan.plus/f/33-1)中基础设施即代码(IaC)的重要基础,能有效支持大规模的服务器初始化与交付。
|