内容预知
第三步:配置DHCP服务器,分配IP地址,指明tftp服务器的地址。
第四步:修改TFTP服务配置文件/etc/xinetd.d/tftp将服务打开
第四步:再次修改ftfp文件配置,让ks.cfg文件配置生效
1.PXE网络批量装机的简介和相关知识
1.1 常见的三种系统安装方式
u启动安装:在U盘中下载相关的安装系统及镜像文件,u盘插机安装
光驱安装:将带有所需系统的光盘放进电脑服务器中,按照官方引导装机
网络下载安装:在网上下载相关镜像系统,进行安装
1.2 PXE的简介
PXE(预启动执行环境)是由Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。
若想进行PXE批量装机,首先要搭建 PXE 远程安装服务器。而PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能够向客户机裸机发送 PXE引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。
1.3 进行PXE装机的前提条件
- 客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BIOS设置中允许从 Network 或 LAN 启动即可。
- 网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。
- 服务器要通过 TFTP服务(简单文件传输协议)来提供引导镜像文件的下载。
1.4 PXE 装机的优势
1.规模化:同时装配多台服务器;
2.自动化:安装系统、配置各种服务;
3.远程实现:不需要光盘、U 盘等安装介质。
1.5 PXE装机的过程描述
- 客户机的网卡查找相关的dhcp服务器(获取地址和时间)。
- DHCP服务器给客户机分配IP地址和引导程序(boot loader)的地址 ,同时通过offer报文把TFTP服务器的地址发给客户机。
- TFTP服务器把引导文件(pxelinux.0)传给客户机。
- 客户机将引导程序加载到内存中来。
- 引导程序去TFTP服务器中查找配置文件,服务器将配置文件传给客户机。(配置文件中指定客户机使用ftp方式连接服务器获取系统镜像文件)
- 服务端安装并启动vsftpd服务,客户机使用ftp服务获取系统镜像文件。
2.PXE 安装进行前的配置了解
2.1 PXE装机所需的四大文件
- pxelinux.0:引导程序。(来自syslinux程序)
- default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)
- vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)
- initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)
2.2 搭建PXE 过程中的服务介绍
2.2.1 DHCP服务
DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,同时也能配合DNS解析使用,让指定范围内的客户机能够自动获取解析域名的后缀。
DHCP作为用应用层协议,它依靠并且使用着传输层中udp协议。对于DHCP中分为客户端,和服务端。客户端用的端口为68 ,服务端的端口为67.
具体操作可以了解我之前的博客:
2.2.2 vsftpd服务
vsftpd服务是Linux中使用最多的运用ftp的服务,它是用于Internet上的控制文件的双向传输的一种有效手段,其中有两个端口号均是TCP传输方式,分别为
20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令
具体操作可以了解我之前的博客:
2.2.3 TFTP服务
TFTP(简单文件传输协议),是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。
TFTP服务默认由xinetd服务进行管理,使用UDP69端口。TFTP服务一般只在装机这种场景下使用,用于传输内核和引导文件。因为安全性不高。它的位置存在:/var/lib/tftpboot
2.2.4 syslinux
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间, 并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后, sysLinux启动盘就可以引导各种基于DOS的工具, 以及MS-DOS/Windows或者 任何其它操作系统。
3.PXE批量安装的具体操作过程
第一步:安装四个相关的软件包
yum install -y dhcp vsftpd tftpd syslinux //同时安装四个软件服务
也可以一个一个的进行安装
第二步:添加第二块虚拟机网卡, 修改相关配置,构建内网环境
添加新网卡:
改变网卡的自动分配网络功能:
设置第二块网卡:
cd /etc/sysconfig/network-scripts/ //进入到网卡配置所在目录。
cp -p ifcfg-ens33 ./ifcfg-ens36 //初始没有新加网卡ens36的配置,复制一份,认定为ens36的配置
vim ifcfg-ens36 //进入ens36网卡配置中进行修改,修改如图
保存退出并重启网卡服务:
systemctl restart network
第三步:配置DHCP服务器,分配IP地址,指明tftp服务器的地址。
[root@localhost ~]# cd /usr/share/doc/dhcp-4.2.5/
[root@localhost dhcp-4.2.5]# ls
[root@localhost dhcp-4.2.5]# cp dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
另外还可以在里面添加: ddns-update-style none; #禁用 DNS 动态更新
完成后进行保存退出
第四步:修改TFTP服务配置文件/etc/xinetd.d/tftp将服务打开
vim /etc/xinetd.d/tftp
注意:该配置保存退出后即生效
第五步:挂载光盘,安放三大文件
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# mount /dev/sr0 centos7 //将光盘挂载到/var/ftp/centos7/目录下
[root@localhost centos7]# cd isolinux
[root@localhost isolinux]# cp vmlinuz initrd.img /var/lib/tftpboot
//将光盘内的2个文件拷入tftpboot目录
[root@localhost tftpboot]# rpm -ql syslinux |grep pxelinux.0 //查找pxelinux.0文件位置
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./
//将pxelinux.0文件拷入tftpboot目录
第六步:创建子目录,在子栏目下编写引导程序
#默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default
mkdir /var/lib/tftpboot/pxelinux.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
第七步:关闭selinux和防火墙, 启动所有相关的服务
关闭防火墙和selinux。启动 dhcpd、tftp、vsftpd 三个服务。
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl start vsftpd
第八步装机测试:
1.
2.
3. 4.
5.
6.
7.
8.
9.
4.Kickstart全自动化安装
4.1 Kickstart运用的目的
上面的安装,是通过多种服务单配,省略了导入镜像,并且只要是同一网段的机器,开机就能自动获取镜像,安装镜像,配置基础网路配置。但是后半部分依旧需要手动安装。要知道,现实生产环境中,不会给公司的每一台服务器配上显示器和输入设备。所以要想实现真正的全自动化,就要引入Kickstart程序服务,实现真正完全全自动化安装。
4.2 Kickstart具体操作步骤
第一步:安装kickstart服务程序
yum install -y system-config-kickstart
第二步:返回虚拟机,进行设置
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.就现实环境来说Linux系统自带的防火墙作用可以是忽略不计,而且会影响网络服务的正常允许。
12 .
13.
14.
15.
16.
17.
vim ~/ks.cfg //查看kickstart 形成的脚本
18.
19.
20.
注意:下图第二个软件包,和桌面有关,但是我们在kickstart中设置了无桌面,所以它不生效。
保持后并退出
第三步:将保存修改后的ks.cfg 文件移动到ftp中
[root@localhost ~]# cp -p ks.cfg /var/ftp
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# ls
第四步:再次修改ftfp文件配置,让ks.cfg文件配置生效
[root@localhost tftpboot]# cd /var/lib/tftpboot/pxelinux.cfg
[root@localhost pxelinux.cfg]# ls
[root@localhost pxelinux.cfg]# vim default
保持后并退出,设置算完成了
第五步:进行测试,只需要打开虚拟机,不用做任何操作
结果:
总结
pxe批量装机:
- 安装4个软件包:dhcp、tftp-server、vsftpd、syslinux(取得prelinux.0文件)。
- 配置DHCP服务器,分配IP地址,指明tftp服务器的地址。(虚拟机需要开启仅主机模式,模拟内网环境)
- 编辑TFTP服务配置文件,开启服务(默认是关闭状态)。
- 挂载软件安装源(通常情况下都使用光盘中的安装源,即挂载光驱),并将三大文件先拷入/var/lib/tftpboot/ 目录中:pxelinux.0,vmlinuz,initrd.img。
- 在/var/lib/tftpboot/ 目录下,创建子目录pxelinux.cfg,在子目录下编写引导程序的配置文件default。
- 关闭防火墙和selinux。启动dhcpd、tftp、vsftpd。
- 使用空白客户机(裸机)测试能否自动装机。
自动装机-kickstart:
1.安装kickstart服务
2.进行kickstart设置
3.如果写简易脚本,就保存在家目录
4.将原本的预设值加装软件添加到kickstart生成的文件
5.把该文件移动到ftp下
6.修改ftfp配置