KickStart自动化安装部署
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统
# yum -y install dhcp*
# rpm -ql | grep "dhcpd.conf"
# vim /etc/dhcpd/dhcpd.conf
default-lease-time 21600;
max-lease-time 43200;
subnet 192.168.245.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.245.180 192.168.245.200;
option subnet-mask 255.255.255.0;
option routers 192.168.245.2;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.245.129;
filename "/pxelinux.0";
host InstallOS {
hardware ethernet 00:0C:29:BA:18:17;
fixed-address 192.168.245.185;
}
}
# systemctl restart dhcpd
# netstat -lntup | grep dhcpd
# yum -y install tftp-server
# vim /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
}
# systemctl restart tftp
# netstat -lntup | grep 69
# yum -y install httpd
# mkdir /var/www/html/centos7.6
# mount /dev/cdrom /var/www/html/centos7.6
# systemctl restart httpd
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。如果没有找到pxelinux.0这个文件,可以安装一下。
# yum -y install syslinux
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
# cp /var/www/html/centos7.6/isolinux/* /var/lib/tftpboot/
# mkdir /var/lib/tftpboot/pxelinux.cfg/
# cp /var/www/html/centos7.6/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
# vim /var/lib/tftpboot/pxelinux.cfg/default
default ks
prompt 0
label ks
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.245.129/ks_config/Centos7.6-ks.cfg #cfg文件访问路径
创建KS文件
# ks_config
# vim /var/www/html/ks_config/Centos7.6-ks.cfg
install
url --url="http://192.168.245.129/centos7.6/" #镜像访问路径
text
lang en_US.UTF-8
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS6
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw --iscrypted $6$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYGWlgKsn945fFTjRC658UXjuocwJbAjVI5D6/
clearpart --all --initlabel
part /boot --fstype=xfs --asprimary --size=500
part swap --size=2048
part / --fstype=xfs --grow --asprimary --size=20000
firstboot --disable
selinux --disabled
firewall --disabled
logging --level=info
reboot
%packages
@base
@compat-libraries
@debugging
@development
tree
nmap
sysstat
lrzsz
dos2unix
telnet
%end