kickstart自动化安装核心是准备合法ks.cfg文件并确保anaconda能加载:来源有三——复用/root/anaconda-ks.cfg、图形工具system-config-kickstart生成、或基于#version声明手动编写;配置须含install/url/keyboard/lang/network/rootpw/timezone/bootloader等基础段,及%packages和%post;需通过pxe/u盘/光盘引导参数inst.ks=指定路径;部署前应ksvalidator校验语法并测试url可达性。

Linux 运维中使用 Kickstart 实现自动化安装,核心是准备一个合法、完整、可被 anaconda 识别的 ks.cfg 文件,并确保安装环境能正确加载它。整个过程不依赖图形界面,全程脚本化控制,适合批量部署、CI/CD 环境或标准化镜像构建。
从哪来:获取 Kickstart 文件的三种可靠方式
不必从零手写,优先复用已有配置:
- 直接提取安装后生成的模板:每台 CentOS/RHEL 安装完成后,系统自动生成 /root/anaconda-ks.cfg,内容真实、结构完整,只需修改 IP、密码、分区等变量即可复用
- 用图形工具生成:在有桌面环境的机器上运行 system-config-kickstart(需 yum install system-config-kickstart),通过向导点选网络、分区、软件包等,一键导出 ks.cfg
- 基于官方模板手动精简:以 #version=RHEL8 或 #version=CentOS7 开头,保留必要命令段(install、url、keyboard、lang、network、rootpw、timezone、bootloader),再按需添加 %packages 和 %post
怎么配:关键配置项不能漏、不能错
一个最小可用的 ks.cfg 必须包含以下基础模块,顺序无关但缺一不可:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 安装源:用 url --url="http://192.168.10.10/centos7/os/" 指向 HTTP/FTP/NFS 路径;U 盘安装则用 cdrom 或 harddrive --partition=LABEL=CentOS 7 x86_64 --dir=/
- 网络与主机名:例如 network --bootproto=dhcp --device=ens33 --onboot=on --hostname=node01.local;静态 IP 加 --ip=192.168.10.100 --netmask=255.255.255.0 --gateway=192.168.10.1 --nameserver=8.8.8.8
- 磁盘方案:简单场景用 clearpart --all --initlabel + autopart;定制分区必须明确 part / --fstype=xfs --size=10240、part swap --size=2048 等
- 安全与启动:明文密码不推荐,应使用 rootpw --iscrypted $6$xxx...(用 python3 -c "import crypt; print(crypt.crypt('mypwd', crypt.mksalt(crypt.METHOD_SHA512)))" 生成);bootloader --location=mbr --driveorder=sda 是常见组合
怎么用:让安装程序真正读到并执行它
ks.cfg 本身只是配置,必须通过引导参数显式告知 anaconda:
- PXE 网络安装:在 DHCP/TFTP 提供的 pxelinux.cfg/default 中,内核行追加 inst.ks=http://192.168.10.10/ks.cfg
- U 盘安装:将 ks.cfg 放入 U 盘根目录,修改 isolinux/syslinux.cfg,在对应 menu label 的 append 行末尾加上 inst.ks=hd:LABEL=CentOS\x207\x20x86_64:/ks.cfg
- 光盘本地安装:挂载 ISO 后复制 ks.cfg 到某分区(如 /dev/sdb1),引导时按 Tab 编辑启动参数,添加 inst.ks=hd:/dev/sdb1:/ks.cfg
怎么验:避免安装中途失败的实用建议
配置写完别急着重启,先做两件事:
- 语法校验:安装 pykickstart 工具,运行 ksvalidator /path/to/ks.cfg,它会指出过时关键字、缺失必选项等硬性错误
- 关键路径测试:用浏览器或 curl 手动访问 inst.ks= 后面的 URL,确认 ks.cfg 可下载;同时验证安装源 URL(如 url --url=)下是否存在 repodata/ 目录
- 日志定位问题:安装卡住时,切换到 Ctrl+Alt+F2 终端,查看 /tmp/anaconda-tb-* 和 /tmp/ks-script-* 日志,%post 脚本错误常在这里暴露










