操作过程
大概过程
- 分配给同一局域网内新加机器的地址(配置文件) dhcp 分配地址 指明tftp 服务器的地址
- tftp服务端开启 udp 配置 默认关闭
- 安装syslinux 取得 pxelinux.0 文件
- 安装vsftpd服务挂载软件安装源(mount /dev/sr0 /var/ftp/centos7)
- 将四大文件拷入 (/var/lib/tftpboot )
- initrd.img
- pxelinux.0 (类似grub)
- pxelinux.cfg/default (手写)
- vmlinuz
6.将服务开启,关闭防火墙,selinux
具体操作步骤:
yum install tftp-server vsftpd syslinux dhcp -y
cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example //配置文件模板在此目录下
# see dhcpd.conf(5) man page
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#将模板文件覆盖掉配置文件
vim /etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.200 192.168.100.230;
option routers 192.168.100.100;
next-server 192.168.100.100; #指定tftp的服务器地址
filename "pxelinux.0"; #指定启动文件
}
rpm -ql tftp-server
#主要文件:
#/etc/xinetd.d/tftp //配置文件
#/var/lib/tftpboot //站点
vim /etc/xinetd.d/tftp
#14行改成no,启动服务
1 default: off
2 # description: The tftp server serves files using the trivial file transfer \
3 # protocol. The tftp protocol is often used to boot diskless \
4 # workstations, download configuration files to network-aware printers, \
5 # and to start the installation process for some operating systems.
6 service tftp
7 {
8 socket_type = dgram
9 protocol = udp
10 wait = yes
11 user = root
12 server = /usr/sbin/in.tftpd
13 server_args = -s /var/lib/tftpboot
14 disable = no #14行改成no,启动服务
15 per_source = 11
16 cps = 100 2
17 flags = IPv4
18 }
#每项详解
service tftp
{
socket_type = dgram
protocol = udp
wait = no //wait no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接,表示是否开启多线程一起工作,否则需要等待
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot //指定TFTP根目录(引导文件的存储路径) -c允许上传
disable = no //disable no表示开启TFTP服务
per_source = 11 //通过限制一个主机的最大连接数,从而防止某个主机独占某个服务,这里每个IP地址的连接数是11个
cps = 100 2 //表示服务器最多启动100个连接,如果达到这个数目将停止启动新服务2秒。在此期间不接受任何请求
flags = IPv4
}
rpm -ql syslinux |grep pxelinux.0 //安装完成后找到该文件的地址
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ //拷贝到站点文件里
rpm -ql vsftpd
cd /var/ftp
mkdir centos7
mount /dev/sr0 /var/ftp/centos7/
cd /var/ftp/centos7/
ls
#CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-#CentOS-Testing-7
#EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
cd images/
ls
#efiboot.img pxeboot TRANS.TBL
cd pxeboot/
ls
#initrd.img TRANS.TBL vmlinuz
cp initrd.img vmlinuz /var/lib/tftpboot/
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
cd pxelinux.cfg/
vim default
default linux
prompt 1
label linux
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.91.100/centos7 ks=ftp://192.168.91.100/ks.cfg
label linux text
kernel vmlinuz
append text initrd =initrd.img method=ftp://192.168.91.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.91.100/centos7
ls
#四大文件
#initrd.img pxelinux.0 pxelinux.cfg/default vmlinuz
systemctl stop firewalld.service
systemctl start dhcpd
systemctl start tftp
systemctl start vsftpd
setenforce 0
CentOS 8,7,6 不同版本的kickstart文件格式不尽相同,不可混用
[root@localhost tftpboot]#yum install system-config-kickstart -y
#安装图形化工具