目录
什么是PXE
PXE全称是preboot execute environment 其实是intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。
PXE是通过网卡引导启动
实现的硬件条件
- BIOS支持
- 网卡支持
- 需要在BIOS中开启开关,服务器一般没打开(bmc界面里打开)
- 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置DHCP功能 (dhcp指明分配的ip地址)
- 服务器通过tftp服务(简单文本传输协议)来提供系统内核和引导镜像的下载udp协议 网卡自带此功能(不支持其他的远程共享服务)
两个必要的文件
vmlinuz:内核映像
initrd.img:ramfs文件(精简版linux系统,文件系统驱动等)
PXE批量部署的优点
- 规模化:可同时安装配置多台服务器
- 自动化:安装系统、配置各种服务
- 远程实现:不需要光盘、U盘等安装介质
实现过程
- 网卡需要查找相关的DHCP服务器(获取地址时间)
- 找到后DHCP服务器提供ip地址,和引导程序(boot loader)的地址,还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
- 网卡使用tftp客户端把引导程序加载到内存中
- bios执行引导程序
- 引导程序会去TFTP去查找配置文件
- 根据配置文件去引导安装系统
- 系统安装过程
安装步骤
将nat模式的dhcp关掉
安装服务
[root@jjj ~]# yum install dhcp tftp-server.x86_64 vsftpd syslinux -y
#安装服务
[root@jjj ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
[root@jjj ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@jjj ~]# vim /etc/dhcp/dhcpd.conf
查看tftp的配置文件
[root@jjj ~]# vim /etc/xinetd.d/tftp
[root@jjj ~]# cd /var/ftp
[root@jjj ftp]# mkdir centos7
[root@jjj ftp]# mount /dev/sr0 centos7
mount: /dev/sr0 写保护,将以只读方式挂载
拷贝文件给tftp
[root@jjj ftp]# cd centos7
[root@jjj 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
[root@jjj centos7]# cd isolinux
[root@jjj isolinux]# ls
boot.cat grub.conf isolinux.bin memtest TRANS.TBL vmlinuz
boot.msg initrd.img isolinux.cfg splash.png vesamenu.c32
[root@jjj isolinux]# cp vmlinuz initrd.img /var/lib/tftpboot
[root@jjj isolinux]# cd /var/lib/tftpboot
[root@jjj tftpboot]# ls
initrd.img vmlinuz
把pxe文件复制过来
[root@jjj tftpboot]# rpm -ql syslinux |grep linux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@jjj tftpboot]# cp /usr/share/syslinux/pxelinux.0 .
[root@jjj tftpboot]# ls
initrd.img pxelinux.0 vmlinuz
新建pxelinux.cfg文件需手写
[root@jjj tftpboot]# mkdir pxelinux.cfg
[root@jjj tftpboot]# ls
initrd.img pxelinux.0 pxelinux.cfg vmlinuz
[root@jjj tftpboot]# cd pxelinux.cfg/
[root@jjj pxelinux.cfg]# ls
[root@jjj pxelinux.cfg]# vim default
四大配置文件
开启服务
[root@jjj tftpboot]# systemctl stop firewalld
[root@jjj tftpboot]# setenforce 0
[root@jjj tftpboot]# systemctl start dhcpd
[root@jjj tftpboot]# systemctl start tftp
[root@jjj tftpboot]# systemctl start vsftpd
新建一台机子
内存一定要大于两个G不然加载不出来
开机
关于kickstart
kickstart无人值守技术
- 创建应答文件,预先定义各种安装设置
- 免去交互设置过程,从而实现全自动化安装
装机时自生成的应答文件
[root@jjj ~]# vim anaconda-ks.cfg
在最后可以写些预配置脚本
%pre:安装前脚本
%post:安装后脚本
格式
例如:
%post
useradd lisi
%end
可用 “ksvalidator anaconda-ks.cfg”检查文件格式
图形化kickstart配置
先安装软件
[root@jjj ~]# yum install system-config-kickstart.noarch -y
查看下
修改配置文件,指明kickstart应答文件位置
[root@jjj ftp]# cd /var/lib/tftpboot/pxelinux.cfg
[root@jjj pxelinux.cfg]# ls
default
[root@jjj pxelinux.cfg]# vim default
重启下安装的机子
点完回车后静静等待即可
安装成功