5.255.255.0 {
range 192.168.100.10 192.168.100.100; #指明分配的ip地址范围
range 192.168.100.150 192.168.100.200; #每一行需要以分号结束
option routers 192.168.100.1; #指定网关
next-server 192.168.1.100; #TFTP服务器地址
filename "pxelinux.0"; #bootloader启动文件的名称
}
范例:dhcpd.conf
#dhcp的配置文件每一行使用分号结束
[root@centos8 ~]#grep -v "#" /etc/dhcp/dhcpd.conf
option domain-name "magedu.org";
option domain-name-servers 180.76.76.76, 223.6.6.6; #指定使用的dns
default-lease-time 600; #指定到期的时间
max-lease-time 7200;
log-facility local7;
subnet 10.0.0.0 netmask 255.255.255.0 { #指定给那个网段分配
range 10.0.0.10 10.0.0.100; #分配的ip地址范围
range 10.0.0.110 10.0.0.200;
option routers 10.0.0.2; #指定网关
next-server 10.0.0.8; #指定使用的tftp服务器
filename "pxelinux.0"; } #指定需要再tftp服务器上下载的文件
host testclient { #给特定的客户端分配的ip地址
hardware ethernet 00:0c:29:33:b4:1a; #客户端的mac地址
fixed-address 10.0.0.106; #如果是这个客户端就分配这个ip地址
default-lease-time 86400; #合约时间
max-lease-time 864000;
option routers 10.0.0.254; #网关名
option domain-name-servers 114.114.114.114,8.8.8.8 ; #dns服务器
option domain-name "test.net"; } #域名自动补齐
#范例: DHCP服务器给指定主机分配固定IP
[root@centos8 ~]#vim /etc/dhcp/dhcpd.conf
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.50 10.0.0.100;
range 10.0.0.150 10.0.0.200;
option routers 10.0.0.2;
next-server 10.0.0.8;
filename "pxelinux.0"; }
host test {
hardware ethernet 00:0c:29:cd:90:10;
fixed-address 10.0.0.123;
}
实现TFTP服务
TFTP:Trivial File Transfer Protocol ,是一种用于传输文件的简单高级协议,是文件传输协议(FTP)的简化版本。
TFTP使用UDP作为传输层协议,TFTP使用69/udp这个端口
安装和使用TFTP
-
tftp:提供小文件的下载
-
tftp:只需要下载启动起来就行了
实现tftp的软件:
-
tftp-server 服务器包
-
tftp 客户端包
#安装tftp服务器包
[root@centos8 ~]#dnf install tftp-server tftp -y
[root@Centos8 ~]# rpm -ql tftp-server
...
/usr/lib/systemd/system/tftp.service #tftp service文件
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd #tftp主程序
/usr/share/doc/tftp-server
...
/var/lib/tftpboot ##TFTP服务数据目录 数据都放在这个目录下面
#启动服务
[root@centos8 ~]#systemctl enable --now tftp.service
#tftp客户端下载服务端的指定文件
tom@ubuntu1804:~$ tftp 192.168.26.129
tftp> get aa.txt #下载服务端/var/lib/tftpboot下的某个文件
tftp> quit #退出tftp
tftp> status #连接状态的查看
Connected to 192.168.26.129.
Mode: netascii Verbose: off Tracing: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
#以下在tftp服务器执行,当用户下载文件后,可以观察到服务器端自动打开in.tftpd主程序
利用 PXE 实现自动化系统部署
PXE:Preboot Excution Environment,预启动执行环境,是由Intel公司研发
目标:实现基于网络自动化安装系统
利用PXE实现自动化安装流程
PXE网卡:ROM中不但集成了MAC,还集成了DHCP和TFTP客户端。
pxelinux.0 就是一个bootloader。 获取pxelinux.cfg文件(grub二阶段 )
在CentOS 8上实现PXE自动化安装CentOS 7,8
-
配置服务器环境
-
安装对应的软件包
-
配置DHCP服务
-
配置yum私有仓库
-
准备应答文件
-
准备菜单文件
安装前准备:
安装相关软件包并启动
dnf -y install dhcp-server tftp-server httpd syslinux-nonlinux(或者syslinux-tftpboot)
syslinux-nonlinux这个软件包里面提供了pxelinux.0,menu.c32等文件。
menu.c32提供了菜单的功能
配置DHCP服务
配置yum的私有仓库
准备kickstart文件
准备PXE启动相关文件
这些相关文件放在tftp的指定目录下面。( /var/lib/tftpboot/)
[root@centos8 ~]#mkdir /var/lib/tftpboot/centos{6,7,8}
#准备CentOS6,7,8各自的内核相关文件
[root@centos8 ~]#cp /var/www/html/centos/7/os/x86_64/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos7
[root@centos8 ~]#