一、PXE的基础知识和原理
1、PXE批量部署的优点
(1)规模化:同时装配多台服务器
(2)自动化:安装系统、配置各种服务
(3)远程实现:不需要光盘、U盘等安装介质
2、PXE概述
PXE是preboot excutiong Environment的简称:是由Intel公司开发的网络引导技术,工作在Client/Server模式(c/s模式)允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统。PXE严格来说并不是一种安装方式,而是一种引导方式。
服务端需要运行DHCP服务,用来分配地址、定位引导程序,还需运行TFTP服务,提供引导程序下载
客户端需要网卡支持PXE协议,主板支持网络引导
3、Kickstart概述
KickStart 是一种无人职守安装方式。Kickstart的工作原理是通过记录典型的安装过程中所需人工干
预填写的各种参数,并生成一个名为 ks.cfg的文件:在其后的安装过程中(不只局限干生成 Kickstart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 Kickstart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。
这样,如果Kickstart 文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉
安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
4、搭建PXE+kickstart步骤
(1)DHCP服务器用来给客户机分配IP
(2) TFTP服务器用来存放PXE相关文件(比如系统应到文件:)
(3)FTP服务器存放系统安装文件:
(4)Kickstart所生成ks.cfg配置文件
(5)带有一个PXE支持网卡的将安装的主机
二、kickstart无人值守安装实验
1、实验步骤
1、配置DHCP服务
(1)关闭防火墙 关闭增强功能
yum install dhcp -y ###安装dhcp服务
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
(2)cp -rfp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcpd/dhcpd.conf ###复制dhcpd的配置文件到etc/dhcp/dhcpd.conf下并覆盖原文件
vim /etc/dhcp/dhcpd.conf ###编辑dhcp的配置文件
禁用ddns -update-style none;(去掉注释就是禁用)
复制40-44行的模板并粘贴修改配置如下
(3) 配置完成后在虚拟机中添加一块网卡选这自定义vmnet1
cd /etc/sysconfig/network-scripts ###切换到网卡目录下
cp -p ifcfg-ens33 ifcfg-ens37 ###复制一个ens33的配置文件给ens37
vim ifcfg-ens37 ###进入编辑ens37的网卡信息
网卡配置信息如下
配置完成重启网卡 systemctl restart network
ifconfig查看网卡信息
开启dhcdp服务并查看状态
systemctl start dhcpd
systemctl status dhcpd
我这边报错了经查看报错点发现是subnet字母打错了
还有一个问题是因为server没有加s 正确的是domain-name-servers
2、安装TFTP服务
(1)yum install tftp-server -y
yum install xinetd -y
我这边是已经安装好了
vim /etc/xinetd.d/tftp ###tftp被xinet所托管,xinetd默认没有安装需要yum安装。配置文件xinted就是extended internet
把disable =yes 改为 disable =no ###表示开启TFTP服务
准备tftp需要共享出去的文件
mount /dev/sr0 /mnt
cd /mnt/images/pxeboot/ ###内核初始化镜像文件
cp initrd.img vmlinuz /var/lib/tftpboot/ ###复制两个内核初始化文件到站点下
systemctl start xinetd.service
systemctl enable xinted.service ###开启并设置开机自启xinted网络服务
systemctl start tftp
systemctl enable tftp ###开机并设置开机自启tftp协议
3、安装pxe引导程序
yum provides */pxelinux.0 ###查找文件是由哪个软件包组成的
yum install syslinux -y ###安装查找出来的软件包
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot ##复制引导文件到站点下
ls ###查看是否成功
rpm -ql syslinux|grep pxelinux ###查找软件下pxelinux配置文件的位置
4、配置启动菜单文件
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载驱动。默认的启动菜单文件为 default,应放置在 tftp根目录的 pxelinux.cfg 子目录下,典型的启动菜单配置可参考以下操作自动或手动建立。
至于为什么要是/var/lib/tftpboot/pxelinux.cfg/default文件,因为是由pxelinux0这个文件决定好
mkdir/var/lib/tftpboot/pxelinux.cfg //默认pxelinux.cfg是没有的需要手动创建,注意它是一个目录而非文件虽然是以cfg结尾
以下为纯手工配置default菜单文件
vim /var/lib/tftpboot/pxelinux.cfg/default
5、安装ftp服务,准备CentOS7安装源
yum -y install vsftpd
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7 #将镜像复制其中
systemctl start vsftpd
实现Kickstart无人值守安装
准备安装无应答文件
实现批量自动装机
最后新建一个虚拟机来试装看下
新建的虚拟机网络适配器那边要记得改成VMnet1仅主机模式
点击开启看下
可以看到正在运行
正在设置