PXE+kickstart批量部署linux第二步:配置TFTP服务

补充PXE+kickstart批量自动安装linux介绍:
实现原理:将手动安装的所有的详细步骤记录到一个文件中,然后有一种软件通过读取这个文件就可以实现自动化安装系统。

这个工具叫做KickStart,kickstart是RedHat公司开源的工具,所以对CentOS兼容性最好。注意kickstart是一个项目的名称,没有这个软件。

什么是PXE?
PXE,全名Pre-boot Execution Environment,预启动执行环境;
通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统;
PXE客户端会调用网际协议(IP)、用户数据报协议(UDP)、动态主机设定协议(DHCP)、小型文件传输协议(TFTP)等网络协议;

yum安装TFTP:
[[email protected] ~]# yum -y install tftp-server.x86_64
Loaded plugins: fastestmirror
Determining fastest mirrors

  • base: mirrors.aliyun.com
  • extras: mirrors.aliyun.com
  • updates: mirrors.aliyun.com
    base | 3.6 kB 00:00:00
    epel | 5.3 kB 00:00:00
    extras | 3.4 kB 00:00:00
    updates | 3.4 kB 00:00:00
    (1/3): epel/x86_64/updateinfo | 973 kB 00:00:07
    (2/3): updates/7/x86_64/primary_db | 5.0 MB 00:00:11
    (3/3): epel/x86_64/primary_db | 6.7 MB 00:00:18
    Resolving Dependencies
    –> Running transaction check
    —> Package tftp-server.x86_64 0:5.2-22.el7 will be installed
    –> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================================================================
Package Arch Version Repository Size

Installing:
tftp-server x86_64 5.2-22.el7 base 47 k

Transaction Summary

Install 1 Package

Total download size: 47 k
Installed size: 64 k
Downloading packages:
tftp-server-5.2-22.el7.x86_64.rpm | 47 kB 00:00:05
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : tftp-server-5.2-22.el7.x86_64 1/1
Verifying : tftp-server-5.2-22.el7.x86_64 1/1

Installed:
tftp-server.x86_64 0:5.2-22.el7

Complete!
[[email protected] ~]# systemctl start tftp.socket <—启动服务
[[email protected] ~]# systemctl is-active tftp.socket <—检查状态
active
[[email protected] ~]# systemctl is-enabled tftp.socket <—检查有无开机自启动
disabled

PXE+kickstart批量部署linux第二步:配置TFTP服务系统提示file not found, 使用wireshark抓包工具查看:
PXE+kickstart批量部署linux第二步:配置TFTP服务系统提示根目录下没有找到启动文件pxelinux.0,注意这里有个坑,这个目录是TFTP的根目录,不是linux的系统根目录。
PXE+kickstart批量部署linux第二步:配置TFTP服务
进入根目录查看,发现是空的:
PXE+kickstart批量部署linux第二步:配置TFTP服务解决办法是下载安装syslinux镜像:
[[email protected] tftpboot]# yum -y install syslinux
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

  • base: mirrors.aliyun.com
  • extras: mirrors.aliyun.com
  • updates: mirrors.aliyun.com
    Resolving Dependencies
    –> Running transaction check
    —> Package syslinux.x86_64 0:4.05-15.el7 will be installed
    –> Processing Dependency: mtools for package: syslinux-4.05-15.el7.x86_64
    –> Running transaction check
    —> Package mtools.x86_64 0:4.0.18-5.el7 will be installed
    –> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================================================================
Package Arch Version Repository Size

Installing:
syslinux x86_64 4.05-15.el7 base 990 k
Installing for dependencies:
mtools x86_64 4.0.18-5.el7 base 203 k

Transaction Summary

Install 1 Package (+1 Dependent package)

Total download size: 1.2 M
Installed size: 2.6 M
Downloading packages:
(1/2): syslinux-4.05-15.el7.x86_64.rpm | 990 kB 00:00:07
(2/2): mtools-4.0.18-5.el7.x86_64.rpm | 203 kB 00:00:11

Total 106 kB/s | 1.2 MB 00:00:11
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : mtools-4.0.18-5.el7.x86_64 1/2
Installing : syslinux-4.05-15.el7.x86_64 2/2
Verifying : mtools-4.0.18-5.el7.x86_64 1/2
Verifying : syslinux-4.05-15.el7.x86_64 2/2

Installed:
syslinux.x86_64 0:4.05-15.el7

Dependency Installed:
mtools.x86_64 0:4.0.18-5.el7

Complete!
用grep过滤查看pxelinux这个文件是否已经安装成功:
PXE+kickstart批量部署linux第二步:配置TFTP服务将启动文件复制到TFTP根目录下:
PXE+kickstart批量部署linux第二步:配置TFTP服务
尝试再次重启虚拟机,查看结果:
PXE+kickstart批量部署linux第二步:配置TFTP服务可以发现此时的错误提示是configuration file没有找到,实际上是pxelinux这个小系统的配置文件不存在
解决:
[[email protected] tftpboot]# mkdir -p /var/www/html/CentOS7 <—创建挂载目录
[[email protected] tftpboot]# mount /dev/cdrom /var/www/html/CentOS7<–挂载
mount: /dev/sr0 is write-protected, mounting read-only
[[email protected] tftpboot]# cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot/ <–将配置文件复制到tftp根目录下面
[[email protected] tftpboot]# mkdir -p /var/lib/tftpboot/pxelinux.cfg,<–在根目录下创建PXE配置文件存放目录
[[email protected] tftpboot]# cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default ,<–复制镜像目录下的PXE配置文件到前一步创建的PXE配置目录中
可以查看到配置文件已经创建完成:
PXE+kickstart批量部署linux第二步:配置TFTP服务再次重启虚拟机后,发现系统开始自动安装linux了,大功告成:
PXE+kickstart批量部署linux第二步:配置TFTP服务