实例操作(以Centos7为例)
1.关闭防火墙和SELINUX
查看防火墙状态
firewall-cmd --state
停止firewall
systemctl stop firewalld
禁止firewall开机启动
systemctl disable firewalld
关闭selinux
setenforce 0
2.安装配置DHCP服务
#DHCP主要是提供客户端网络参数与TFTP的位置,以及boot loader的文件名
yum install dhcp -y
vi /etc/dhcp/dhcpd.conf #编辑dhcpd.conf配置文件,dhcpd是dhcp的服务名
subnet 192.168.192.0 netmask 255.255.255.0 {#设置网段
option routers 192.168.192.2; #设置网关
option subnet-mask 255.255.255.0; #设置子网掩码
option domain-name-servers 192.168.192.2; #设置dns服务器地址
range dynamic-bootp 192.168.192.200 192.168.192.205; #IP地址租用的范围
default-lease-time 21600; #默认租约时间
max-lease-time 43200; #大租约时间 n
ext-server 192.168.192.133; #tftp服务器地址,本机IP地址,192.168.192.133将作为服务器端
filename "pxelinux.0"; #tftp服务器根目录下面的文件名
}
注意:参照第0步的设置来编写文件;dns服务器地址写网关地址;IP租用范围一定要包含在你DHCP设置的网段内
开启dhcpd
systemctl start dhcpd
查看dhcpd状态
systemctl status dhcpd
#设置为开机自启动
systemctl enable dhcpd
3.安装配置TFTP服务
#boot loader文件pxelinux.0以及内核相关的配置文件(目录pxelinux.cfg下)主要都是由TFTP来提供的!
yum install tftp-server xinetd -y
vi /etc/xinetd.d/tftp #编辑tftp服务配置
disable = no #此项修改,其它不变;保存退出
开启 xinetd
systemctl start xinetd
查看 xinetd 状态
systemctl status xinetd
#设置为开机自启动
systemctl enable xinetd
4.PXE的bootloader和相关配置文件
#syslinux是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作 系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘
yum install syslinux -y
cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 .
cp /mnt/images/pxeboot/{vmlinuz,initrd.img} .
cp /mnt/isolinux/{vesamenu.c32,boot.msg} .
mkdir pxelinux.cfg #创建pxelinux.cfg配置文件
cp /mnt/isolinux/isolinux.cfg pxelinux.cfg/default
vi pxelinux.cfg/default #修改第一行以及删除60行之后的,在文件末尾添加以下内容;也可自己编写
菜单中有两个选项,要么是安装系统,要么是对安装介质进行检验。既然我们已经确定采用无人值守的方式安装系统,还需要为每台主机手动选择相应的选项,未免与我们的主旨(无人值守安装)相悖。现在我们编辑这个default 文件,把第1行的default参数修改为linux,这样系统在开机时就会默认执行那个名称为 linux 的选项了。
#修改第一行
原文档:
default vesamenu.32
修改为
default linux
我们将默认的光盘镜像安装方式修改成 FTP 文件传输方式,并指定好光盘镜像 的获取网址以及 Kickstart 应答文件的获取路径:
#删除60行之后的,在文件末尾添加以下内容;也可自己编写
label linux
menu label ^Install CentOS 74
kernel vmlinuz
append initrd=initrd.imginst.stage2=http://192.168.192.133/ ks=http://192.168.192.133/config/ks.cfg quiet
重启 tftpd
systemctl restart tftpd
查看 tftpd状态
systemctl status tftpd
#设置为开机自启动
systemctl enable tftpd
5.安装配置HTTP服务
#通过HTTP协议把光盘镜像内容传给客户端
yum install httpd -y
cp -rf /mnt/* /var/www/html/ #拷贝镜像
mkdir -p /var/www/html/config #新建目录,把自定义的文件、脚本等放置于此
systemctl start httpd
systemctl status httpd
systemctl enable httpd
6.Kickstart配置文件
#Kickstart 其实并不是一个服务程序,而是一个应答文件。
vi /var/www/html/config/ks.cfg #编辑kickstart配置文件
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
url --url=ftp://192.168.184.134
# Use graphical install
graphical
# firewalld configuration
firewall --disabled
selinux --disabled
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=ens33 --ipv6=auto --activate
network --hostname=localhost.localdomain
# Root password
rootpw --iscrypted $6$GWggOURX7m/SwKM/$v5JaN.WndRKOrPce2WXbMZAlFjObIJ5I9G8L3VubDR/7TcaBBPxI6C4gGgxlUjEghahGkPJamUdZTNyfsZ4Qk1
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
%packages
@^minimal
@core
@development
vim
net-tools
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
reboot
ks.cfg文件也可以自己编写
检查是否存在错误
yum install pykickstart
ksvalidator ks.cfg
7.新建机器测试(客户端启动方式应更改为PXE机器相同网络启动!)
1.服务器端(以上编写的)必须保持开机状态
2.设置时内存必须大于2G,否则安装时会出现一些问题