一、什么是Kickstart
Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。
二、什么是PXE
PXE(Pre-boot Execution Environment,预启动执行环境)
严格来说,PXE 并不是一种安装方式,而是一种引导方式。
需要网卡支持PEX
PXE的工作过程:
1. PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
2. DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;
3. PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;
4. PXE Client 取得pxelinux.0 文件后之执行该文件;
5. 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;
6. 进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装;
三、系统环境
实验环境:Virtualbox (两台机、一台服务器、一台待安装的)
系统平台:CentOS release 6.7 (最小化安装)
网络模式:NAT network模式,组建一个小局域网
DHCP / TFTP IP:10.0.2.5
要安装的系统也是CentOS release 6.7 (最小化安装)
关闭SELinux
系统的安装方式可以选择HTTP、FTP、 NFS,我们这里介绍HTTP方式的安装,其他两种方式的安装,大家可以自行百度。
四、准备工作
生成ks.cfg 文件需要system-config-kickstart 工具,而此工具依赖于X Windows,所以我们需要安装X Windows 和Desktop 并重启系统,操作如下:
yum groupinstall "X Window System" yum groupinstall Desktop reboot
五、配置HTTP 服务
这里就用apche
yum -y install httpd
默认的web目录在 /var/www/html
/etc/init.d/httpd start // 启动
Virtualbox 挂载CentOS 6.7安装光盘
开机之后挂载
mount /dev/cdrom /mnt
复制光盘内容到web目录下
cp -r /mnt/* /var/www/html/
六、配置TFTP
简单文件传输协议,比ftp更简单
yum -y install tftp-server
修改配置文件 /etc/xinetd.d/tftp
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
启动tftp
/etc/init.d/xinetd start
七、安装syslinux
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。
安装之后执行以下命令
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ cp /var/www/html/isolinux/{initrd.img,vmlinuz,boot.msg} /var/lib/tftpboot/ mkdir /var/lib/tftpboot/pxelinux.cfg cp /var/www/html/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default //修改default文件
default ks // 标记要启动的内核(对应下面的ks内核,name随意) #prompt 1 // 显示boot注释符 timeout 600 // 超时时间(秒) display boot.msg menu background splash.jpg menu title Welcome to CentOS 6.7! menu color border 0 #ffffffff #00000000 menu color sel 7 #ffffffff #ff000000 menu color title 0 #ffffffff #00000000 menu color tabmsg 0 #ffffffff #00000000 menu color unsel 0 #ffffffff #00000000 menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 menu color scrollbar 0 #ffffffff #00000000 label ks // 定义标签 kernel vmlinuz append ks=http://10.0.2.5/ks.cfg initrd=initrd.img // 存放ks.cfg文件的位置 label local menu label Boot from ^local drive localboot 0xffff
八、配置DHCP
yum -y install dhcp
vim /etc/dhcp/dhcpd.conf // 添加以下内容
ddns-update-style interim; // 表示dhcp服务器和dns服务器的动态信息更新模式 ignore client-updates; // 忽略客户端更新 subnet 10.0.2.0 netmask 255.255.255.0 { option routers 10.0.2.1; // 路由地址 option subnet-mask 255.255.255.0; // 子网掩码 range 10.0.2.2 10.0.2.254; // 分配IP地址的范围 default-lease-time 600; // 默认租约时间 (秒) max-lease-time 7200; // 最大租约时间 (秒) next-server 10.0.2.5; // kickstart服务器 filename "pxelinux.0"; // }
/etc/init.d/dhcpd start // 启动
九、安装配置Kickstart
yum install system-config-kickstart
在桌面环境下配置Kickstart
打开 Kickstart 会出现一个图形界面程序,就像是安装系统以下,一步步的配置就行了,安装前脚本和安装后脚本不要设置
然后导出为ks.cfg文件
ks.cfg // 内容如下 #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install # Use network installation url --url="http://10.0.2.5" // web服务器地址 # Root password rootpw --iscrypted $1$bkB8IJP/$AatuqG17SFyqWQnE3B1pZ. # System authorization information auth --useshadow --passalgo=sha512 # Use text mode install text // 文本模式安装 # Use graphical mode install #graphical firstboot --disable # System keyboard keyboard us # System language lang zh_CN # SELinux configuration selinux --disabled // 禁用 selinux # Installation logging level logging --level=info # Reboot after installation reboot // 重启 # System timezone timezone Asia/Shanghai # Network information network --bootproto=dhcp --device=eth0 --onboot=on # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part / --fstype="ext4" --size=8192 part swap --fstype="swap" --size=1024 %pre uname %end %post uname %end %packages --ignoremissing // 忽略所有在这个安装源中缺少的软件包、组及环境,而不是暂停安装询问是应该放弃还是继续安装。 @basic-desktop @fonts @input-methods @mysql-client @x11 %end
复制ks.cfg文件 /var/www/html目录下
key --skip 如果是红帽系统,此选项可以跳过输入序列号过程;如果是CentOS 系列,则可以不保留此项内容;
reboot 此选项必须存在,也必须文中设定位置,不然kickstart显示一条消息,并等待用户按任意键后才重新引导;
clearpart --all --initlabel
此条命令必须添加,不然系统会让用户手动选择是否清除所有数据,这就需要人为干预了,从而导致自动化过程失败;
参考:
http://www.cnblogs.com/mchina/p/centos-pxe-kickstart-auto-install-os.html
谷歌