PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
系统环境初始化:
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
iptables -F
systemctl stop firewalld
systemctl disable firewalld
1、配置DHCP服务程序
DHCP服务程序用于为客户端主机分配可用的IP地址,而且这是服务器与客户端主机进行文件传输的基础,因此我们先行配置DHCP服务程序。
yum -y install dhcp
cat /usr/share/doc/dhcp*/dhcpd.conf.example
vim /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
subnet 172.16.70.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option domain-name-servers 172.16.70.250;
range dynamic-bootp 172.16.70.100 172.16.70.200;
default-lease-time 21600;
max-lease-time 43200;
next-server 172.16.70.250;
filename "pxelinux.0";
}
systemctl start dhcpd
systemctl enable dhcpd
2、配置TFTP服务程序
vsftpd服务与TFTP服务。vsftpd是一款功能丰富的文件传输服务程序,允许用户以匿名开放模式、本地用户模式、虚拟用户模式来进行访问认证。但是,当前的客户端主机还没有安装操作系统,该如何进行登录认证呢?而TFTP作为一种基于UDP协议的简单文件传输协议,不需要进行用户认证即可获取到所需的文件资源。因此接下来配置TFTP服务程序,为客户端主机提供引导及驱动文件。当客户端主机有了基本的驱动程序之后,再通过vsftpd服务程序将完整的光盘镜像文件传输过去。
yum -y install tftp-server xinetd
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 xinetd
systemctl enable xinetd
3、配置SYSLinux服务程序
SYSLinux是一个用于提供引导加载的服务程序。与其说SYSLinux是一个服务程序,不如说更需要里面的引导文件,在安装好SYSLinux服务程序软件包后,/usr/share/syslinux目录中会出现很多引导文件。
yum -y install syslinux
mount /dev/cdrom /mnt
cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 .
cp /mnt/images/pxeboot/initrd.img .
cp /mnt/images/pxeboot/vmlinuz .
cp /mnt/isolinux/vesamenu.c32 .
cp /mnt/isolinux/boot.msg .
mkdir pxelinux.cfg
cd pxelinux.cfg/
cp /mnt/isolinux/isolinux.cfg default
vim /var/lib/tftpboot/pxelinux.cfg/default
1 #default vesamenu.c32
2 default linux
65 # append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
66 append initrd=initrd.img inst.stage2=ftp://172.16.70.250 ks=ftp://172.16.70.250/pub/ks.cfg quiet
4、配置VSFtpd服务程序
在我们这套无人值守安装系统的服务中,光盘镜像是通过FTP协议传输的,因此势必要用到vsftpd服务程序。当然,也可以使用httpd服务程序来提供Web网站访问的方式,只要能确保将光盘镜像顺利传输给客户端主机即可。如果打算使用Web网站服务来提供光盘镜像,一定记得将上面配置文件中的光盘镜像获取网址和Kickstart应答文件获取网址修改一下。
#使用某台默认的ks文件
yum -y install vsftpd
cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
cd /var/ftp/pub/
vim /var/ftp/pub/ks.cfg
4 # Use CDROM installation media
5 cdrom
6 url --url=ftp://172.16.70.250
7 # Use graphical install
8 #graphical
9 text
18 network --bootproto=dhcp --device=ens33 --onboot=on --ipv6=auto --no-activate
31 #clearpart --none --initlabel
32 clearpart --all --initlabel
50 %post
51 reboot
52 %end
[root@kickstart]# ll /var/ftp/pub/ks.cfg
总用量 4
-rw-------. 1 root root 997 1月 20 14:10 ks.cfg
chmod +r /var/ftp/pub/ks.cfg
systemctl restart vsftpd
systemctl enable vsftpd
#自定义ks 文件
配置kickstart安装文件
可以使用某台CentOS 7(注意不是6)的/root/anaconda-ks.cfg作为模板手动修改,也可以使用system-config-kickstart命令配置ks.cfg文件:
在某台CentOS 7(注意不是6)系统上安装所需包:
# yum -y install system-config-kickstart
在某台CentOS 7(注意不是6)系统上运行图形界面进行设置:
#system-config-kickstart
验证ks文件的正确性(可选):
在CentOS 7系统安装pykickstart包:
# yum -y install pykickstart
在CentOS 7系统验证上传到此系统的ks文件:
ksvalidator ks.cfg
如果没任何输出,表示没问题。
在CentOS 7系统查看CentOS 6与7的ks版本区别:
ksverdiff -f RHEL6 -to RHEL7
#########新装机器操作############################################################
直接设定在同网段开机即可
参考:
http://hmli.ustc.edu.cn/doc/linux/centos-autoinstall.htm
https://www.linuxprobe.com/chapter-19.html
PS: ks文件详解
#platform=x86, AMD64, 或 Intel EM64T
#version=CentOS7
# Install OS instead of upgrade #全新安装而不是升级
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $改成这样不会再给我发泄密警告了吧?10 #采用加密记录
#rootpw --plaintext 12你要认为我泄漏密码,我对你智商也没辙456 #采用明文记录
# System language
lang en_US
# Firewall configuration #屏蔽防火墙
firewall --disabled
# System authorization information #设定NIS信息
auth --useshadow --passalgo=sha512 --enablenis --nisdomain=mydomain.org --nisserver=192.168.100.254
# Use text mode install #安装方式,文本界面,图形的话graphy
text
# SELinux configuration #关闭SELinux
selinux --disabled
# Do not configure the X Window System #不配置X图形界面
skipx
# Use NFS installation media #设定安装方式
nfs --server=192.168.100.254 --dir=/centos
# Use http installation source
#url --url=http://192.168.100.254/centos/7/
# Network information #采用DHCP获取IP
network --bootproto=dhcp
# Reboot after installation #安装后自动重启,如果BIOS中设置从PXE首先启动,那么会重复安装,请注意,安装后应设置为从先硬盘启动
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information #清除原有分区
clearpart --all
# Disk partitioning information
part / --fstype="xfs" --size=10000
part /boot --fstype="xfs" --size=200
#part /boot/efi --fstype=efi --size=200 #UEFI引导安装时需要,传统LEGACY引导时可屏蔽此选项
part swap --fstype="swap" --size=8000
part /tmp --fstype="xfs" --grow --size=1
%packages #设定所需要的软件包,按需要调整
@base #@表示一组软件包
@network-server
@performance
@system-admin-tools
sdparm
tree
tuned
tuned-utils
ypbind
nfs-utils
vim-enhanced
#-表示从默认软件包的需要去除的软件包
-lvm2
-nano
-pcmciautils
-plymouth
-rfkill
-rsync
-system-config-firewall-tui
-system-config-network-tui
-unzip
-vconfig
-wireless-tools
%end #%packages结尾
%pre #预案装脚本,非必须
date
%end #%pre结尾
%post #安装后脚本,非必须
cat >>/root/.bashrc <>/etc/fstab
%end #%post结尾
来源:oschina
链接:https://my.oschina.net/u/4416751/blog/4919734