system-config-kickstart图形工具或手动创建Kickstart配置文件。
mkkickstart 是Red Hat、CentOS、Fedora等Linux发行版中的工具,用于基于当前运行的Linux系统配置生成Kickstart安装配置文件。Kickstart是Red Hat开发的一种自动化安装技术,允许管理员通过预定义的配置文件自动完成系统安装过程,无需人工交互。
mkkickstart [选项]
| 选项 | 说明 |
|---|---|
--help |
显示帮助信息 |
--version |
显示版本信息 |
--interactive |
交互模式,提示用户输入信息 |
--nfs 服务器:路径 |
指定NFS服务器和安装源路径 |
--cdrom |
从CD-ROM安装 |
--harddrive 分区 |
从硬盘分区安装 |
--url URL |
从指定URL安装 |
--lang 语言 |
设置安装语言 |
--keyboard 键盘布局 |
设置键盘布局 |
--timezone 时区 |
设置系统时区 |
--rootpw 密码 |
设置root密码(明文) |
--rootpw-crypted 加密密码 |
设置root密码(加密) |
--bootloader 位置 |
设置引导加载器安装位置 |
--clearpart 类型 |
指定磁盘分区清理方式 |
--part 分区方案 |
定义磁盘分区方案 |
基于当前系统配置生成Kickstart文件:
sudo mkkickstart > ks.cfg
将当前系统的配置信息输出到ks.cfg文件,生成一个基本的Kickstart配置文件。
sudo mkkickstart --nfs nfsserver.example.com:/path/to/install > ks.cfg
生成指定从NFS服务器安装的Kickstart配置文件。
sudo mkkickstart --cdrom > ks.cfg
生成从CD-ROM安装的Kickstart配置文件。
sudo mkkickstart --lang en_US.UTF-8 --keyboard us > ks.cfg
生成指定语言为美式英语、键盘为美式布局的Kickstart配置文件。
sudo mkkickstart --rootpw MyPassword123 > ks.cfg
sudo mkkickstart --interactive
以交互模式运行,程序会提示用户输入各种配置信息。
sudo mkkickstart --url http://mirror.example.com/centos/7/os/x86_64/ > ks.cfg
生成从指定URL安装的Kickstart配置文件。
典型的Kickstart配置文件包含以下部分:
# 安装源配置
install
cdrom
# 或
url --url="http://mirror.example.com/centos/7/os/x86_64/"
# 语言和键盘设置
lang en_US.UTF-8
keyboard us
# 网络配置
network --onboot yes --device eth0 --bootproto dhcp
# 时区设置
timezone Asia/Shanghai --isUtc
# root密码设置(加密)
rootpw --iscrypted $6$加密字符串
# 身份验证配置
authconfig --enableshadow --passalgo=sha512
# 磁盘分区方案
clearpart --all --initlabel
part /boot --fstype="xfs" --size=500
part pv.01 --size=1 --grow
volgroup vg_root pv.01
logvol / --fstype="xfs" --name=lv_root --vgname=vg_root --size=10240
logvol swap --fstype="swap" --name=lv_swap --vgname=vg_root --size=2048
# 引导加载器配置
bootloader --location=mbr
# 软件包选择
%packages
@base
@core
vim-enhanced
wget
%end
# 安装后脚本
%post
echo "安装后配置脚本"
%end
| 配置段 | 描述 | 常用选项 |
|---|---|---|
| 安装源 | 指定安装介质位置 | cdrom, url, nfs, harddrive |
| 系统配置 | 基础系统设置 | lang, keyboard, timezone |
| 网络配置 | 网络接口设置 | network (--bootproto, --device, --ip等) |
| 认证配置 | 身份验证方法 | auth, rootpw |
| 磁盘分区 | 磁盘分区方案 | clearpart, part, logvol, volgroup |
| 引导配置 | 引导加载器设置 | bootloader |
| 软件包 | 要安装的软件包 | %packages段 |
| 安装后脚本 | 安装后执行的脚本 | %post段 |
为Kickstart文件生成加密密码:
# 方法1:使用Python生成加密密码
python3 -c "import crypt; print(crypt.crypt('MyPassword123', crypt.mksalt(crypt.METHOD_SHA512)))"
# 方法2:使用openssl生成加密密码
openssl passwd -6 -salt $(openssl rand -base64 12) MyPassword123
# 方法3:使用grub-crypt生成加密密码
grub-crypt --sha-512
# 在Kickstart文件中使用加密密码
rootpw --iscrypted $6$salt$encrypted_password
注意:加密密码包含算法标识符($6$表示SHA-512)、盐值和加密后的密码哈希。
使用Kickstart文件安装Linux系统的方法:
inst.ks=位置参数
# 从HTTP服务器
linux inst.ks=http://server.example.com/ks.cfg
# 从NFS服务器
linux inst.ks=nfs:server.example.com:/path/ks.cfg
# 从本地文件
linux inst.ks=hd:sdb1:/ks.cfg
system-config-kickstart或手动编辑Kickstart文件ksvalidator ks.cfgmkkickstart生成当前系统的配置%post段中添加系统初始化命令%post --interpreter=/bin/bashsudo yum install mkkickstart(RHEL/CentOS)/usr/share/doc/目录下的示例Kickstart文件| 工具/方法 | 描述 | 优点 |
|---|---|---|
| system-config-kickstart | 图形化Kickstart配置工具 | 用户友好,可视化配置 |
| 手动编辑ks.cfg | 手动编写Kickstart配置文件 | 完全控制,灵活性高 |
| Cobbler | 高级系统部署和配置管理 | 支持PXE、模板、系统配置管理 |
| Foreman | 完整的生命周期管理工具 | Web界面,支持多种操作系统 |
| Ansible/Puppet/Chef | 配置管理工具配合Kickstart | 自动化配置管理,状态维护 |
图形化Kickstart配置工具:
# 安装system-config-kickstart
sudo yum install system-config-kickstart
# 启动图形界面
sudo system-config-kickstart
主要功能:
sudo mkkickstart --url http://mirror.example.com/centos/7/os/x86_64/ \
--lang en_US.UTF-8 --keyboard us \
--timezone Asia/Shanghai > webserver-ks.cfg
# 编辑生成的配置文件
vim webserver-ks.cfg
# 添加Web服务器软件包
%packages
@base
@core
httpd
mod_ssl
php
php-mysql
mariadb-server
firewalld
%end
# 添加防火墙规则
firewall --enabled --service=http --service=https --service=ssh
# 添加安装后脚本
%post
# 配置HTTP服务
systemctl enable httpd
systemctl enable mariadb
# 创建网站目录
mkdir -p /var/www/html/example.com
chown -R apache:apache /var/www/html/example.com
# 配置数据库
mysqladmin -u root password 'DBPassword123'
# 写入配置完成标志
echo "Web server configuration completed" > /root/install-complete.txt
%end
ksvalidator webserver-ks.cfg