一.PXE服务的功能介绍
1.无盘启动:PXE允许计算机在没有本地存储设备的情况下启动操作系统。这对于构建无盘工作站非常有用,因为计算机可以直接从网络加载操作系统和其他应用程序1。
2.远程安装操作系统:PXE技术可以用于远程安装操作系统,尤其适合于数据中心和大型企业环境中的批量部署。它可以简化和加速新硬件的初始化过程4。
3.自动化安装和配置:借助PXE,可以实现操作系统的无人值守安装。通过预先定义好的配置文件(如Kickstart脚本),可以自动化整个安装过程21。
4.系统维护和恢复:在系统故障或需要维护时,PXE可以用来引导进入一个临时环境(如Windows PE或Linux live环境),从而执行修复操作12。
5.简化网络管理:PXE使得管理员能够在网络上集中管理多台计算机的启动配置和软件部署,减少了对物理介质(如光盘、U盘)的依赖,提高了工作效率9。
6.规模化的部署:特别适用于大规模服务器部署,可以同时装配多台服务器,减少了手动操作的工作量15。
DHCP服务和FTP服务的组合,来实现PXE服务。
作用:实现批量安装部署Linux系统,
硬件服务器和个人PC不同,最基本的工作是在服务器上安装操作系统,
事先部署好一台PXE服务器,它提供的就是各操作系统的安装盘,
将来新服务器要想联系PXE服务器来安装操作系统,
二PXE服务相关的组件
1.DHCP服务器
向新服务器分配IP地址,告知新服务器TFTP的地址。
2.文件共享服务
支持ftp,nfs,http
提供系统安装源
文件共享服务共享出去的不是iso镜像文件而是iso镜像文件中的配置文件。
3.TFTP服务
提供菜单
提供对应系统的内核vmlinuz,系统初始化镜像文件initrd.img
4.pxelinux.0文件
让PXE服务器可正常接收新服务器启动安装系统的请求。
1.新机器的网卡上要有IP地址,需要在PXE服务器上配置DHCP服务,
2.还需要在PXE服务器上配置ftp服务,nfs服务,http协议这三种中的任意一种将这些文件共享出去。
3.还需要有tftp服务存在,这个tftp服务也是用来实现文件共享的,ftp底层是根据tcp协议工作的,tftp底层是根据udp协议工作的。
tcp速度慢,udp速度快,
并且tftp服务可以在对方客户端没有操作系统的前提下,根据客户端网卡上的tftp客户端,为客户端提供菜单,提供对应操作系统的内核vmlinuz,初始化镜像文件initrd.img
4.还需要有pexlinux.0文件存在,这个文件的作用是让PXE服务器可正常接收新服务器启动安装系统的请求。
一般情况下,ftp服务的客户端需要有客户端软件才能支持ftp服务,这里用tftp的好处是即使机器上没有相应的客户端软件,但是机器的网卡上有相应的tftp客户端软件支持tftp服务。
三.配置PXE服务提供centos7的安装源
1.扩展根分区容量
如上图所示,给这个虚拟机新增加一块硬盘,硬盘名称叫sdb,大小为50Gb
如上图所示,
1.pvcreate /dev/sdb: 这个命令用于将物理设备/dev/sdb标记为一个可以作为物理卷使用的设备。这通常是在添加新的硬盘到系统后进行的操作。
2.vgextend centos /dev/sdb: 这个命令将刚才创建的物理卷/dev/sdb加入到名为"centos"的卷组中。卷组是一个容器,它包含了多个物理卷,并且可以在其上创建逻辑卷。
3.lvextend -L +40G /dev/centos/root: 这个命令用来扩展名为"/dev/centos/root"的逻辑卷大小。在这个例子中,逻辑卷的大小增加了40GB。
4.xfs_growfs /dev/centos/root: 当XFS文件系统的逻辑卷大小改变时,我们需要运行这个命令来更新文件系统的元数据,使其能够利用新增加的空间。
5.df -hT | grep "root": 最后,这个命令是用来查看根目录(/)的磁盘使用情况。通过过滤出包含"root"的结果,我们可以看到根目录所在的分区的详细信息,包括文件系统类型、已用空间、剩余空间以及总容量。
总的来说,这些命令的目的是为了在Linux系统中增加根目录的可用存储空间。首先,一个新的硬盘被添加并格式化为物理卷;然后,该物理卷被添加到现有的卷组中;接着,逻辑卷的大小被调整以包含更多的空间;最后,文件系统被更新以反映这些变化,并验证根目录的可用空间已经增加。
2.安装pxe服务所需要的软件
如上图所示,安装pxe服务所需要的软件,安装dhcp和vsftpd,而tftp-server,xinetd都是为了让tftp能够正常工作的,syslinux的作用是提供pexlinux.0文件的。
3.配置ftp服务,共享系统安装文件
如上图所示,如果想要共享centos7的iso文件,就必须把这个iso文件挂载着,所以上图是挂载centos7的光盘到/mnt/,
如上图所示,现在/var/ftp目录下新创建一个目录centos74,然后将原来挂载iso镜像文件的目录下的所有文件都使用cp命令复制到/var/ftp/centos74,随后使用systemctl start vsftpd,systemctl enable vsftpd ,这里设置ftp服务的启动和开机自启动,随后可以使用netstat -antp | grep ftp
来查看ftp的默认端口21,是否打开了。即确认ftp服务是否启动成功,
4.配置TFTP服务
1)通过tftp服务共享内核,初始化镜像文件,菜单相关文件
这些文件就在安装光盘里面,
如上图所示,在centos7的ISO镜像文件中,vmlinuz是系统内核,initrd.img是初始化镜像文件,而isolinux.cfg是菜单相关文件。而剩下的所有/isolinux/目录中的文件都是为了让isolinux.cfg菜单相关文件显示的。所以为了让isolinux.cfg菜单相关文件显示,就需要让所有的文件都cp到tftp服务的数据目录/var/lib/tftpboot/中,
如上图所示,tftp服务的共享数据目录是/var/lib/tftpboot/
2)共享一个pxelinux.0文件
rpm -ql syslinux 查一下软件syslinux生成的文件
如上图所示,需要将pxelinux.0文件拷贝到/tftpboot/的数据目录中,以此让pxe服务器能够解释客户端机器发送过来的数据。
3)编辑菜单文件
如上图所示,菜单文件放在centos7ISO镜像文件的时候,这个菜单文件名称叫做isolinux.cfg
如上图所示,这个菜单文件在tftp服务中要想共享出去,必须要在/var/lib/tftpboot/pxelinux.cfg这个目录中,而且这个菜单文件的名称也必须是default文件,
如上图所示,这是针对菜单文件的一个编辑工作。
一个label标签就是一个菜单。
menu 是这个菜单显示什么话,
kernel:对应内核的存储位置,需要相对于/var/lib/tftpboot/这个tftp服务默认的数据目录。
append:initrd=系统初始化镜像文件,相对路径,也是相对于/var/lib/tftpboot/
inst.stage2=指定系统安装包文件的存储位置,即ftp服务共享出去的,存储着镜像文件中的内容文件的数据目录。
inst.repo=指定软件安装包的存储位置
即vim /var/lib/tftpboot/pxelinux.cfg/default,如上图所示,找到tftp的内核vmlinuz,系统初始化镜像文件initrd.img。
如果在编辑完菜单文件以后,文件保存不上,就使用:wq!,强制保存。
4)启动tftp服务
因为tftp没有单独的服务,所以想要在机器中启动tftp服务就要启动tftp的父进程即启动xinetd进程。
xinetd是tftp的父进程
vim /etc/xinetd.d/tftp
disable =no
使得tftp服务的启动受xinetd的控制,
如上图所示,在编辑完/etc/xinetd.d/tftp后,可以使用systemctl命令来重启xinetd进程,然后配置xinetd进程开机自启动,
如上图所示,tftp服务默认的是使用的udp协议的69号端口,所以此时使用命令netstat -aunp | grep 69 号端口相关的进程,此时会发现69号端口对应的进程名不是tftp而是xinetd进程。
5.配置DHCP服务
如上图所示,先拷贝一份dhcp配置文件的模板,
然后在/etc/dhcp/dhcpd.conf中去修改这个配置文件,配置子网掩码是24位,随后配置这个dhcp服务能够分出去的IP地址范围是192.168.183.100到192.168.183.200,即最多同时服务一百台机器,
这里的dhcp是组成pxe服务的一部分所以不需要网关和DNS服务器地址。
然后这个dhcp服务指定的tftp服务器地址是192.168.183.10
最后在dhcp服务的配置文件中指定tftp服务器共享的pxelinux.0文件名称。将来让新服务器拿到这个文件,新服务器才能正常地向pxe服务器发送请求。
如上图所示,随后启动dhcpd服务,然后将这个dhcp服务设置成开机自启动,这个dhcpd服务是基于udp协议的67号端口。
6.测试pxe服务
第一:确保测试机器和pxe服务器都在同一个网段中,
第二:但凡在这个网段中存在DHCP服务器的时候,就需要把网络中原来的DHCP服务器关掉,
第三:用来安装centos7操作系统的机器内存最少2GB.
如上图所示,将vmnet8虚拟网络自带的dhcp服务关掉。
如上图所示,此时配置的PXE服务已经可以在不需要光盘的前提下去自动地出现图形化操作界面,
四.根据PXE服务提供centos6的自动化安装
1.配置ftp服务,共享centos6系统安装文件
在虚拟机开机的时候,更换ISO镜像文件,这时的更换镜像文件会给光盘断电,需要我们手动点击虚拟机右下角给光盘重新充上电。
如上图所示,此时重新挂载centos6的ISO镜像文件,到/mnt/。
如上图所示,此时在ftp的数据目录下重新配置一个centos6的数据目录,然后将原来镜像文件挂载目录中的所有文件都cp到ftp服务新的centos6的数据目录中。
2.配置tftp服务,共享centos6的内核还有初始化镜像。
如上图所示,在镜像文件挂载目录的isolinux目录下,也有centos6的内核文件即vmlinuz,也有centos6的初始化镜像文件即初始化镜像文件initrd.img。也有centos6的菜单文件即isolinux.cfg菜单文件,
因为Linux操作系统的内核文件和初始化镜像文件,以及菜单文件名称都一样所以不能直接将centos6的isolinux目录中的所有文件直接cp到tftp服务的数据目录中,也就是不能直接将centos6的isolinux目录中的所有文件直接cp到/var/lib/tftpboot/中,
如上图所示,这个问题的解决方案是在tftp服务的数据目录下重新创建一个目录,这个目录也就是专门存放centos6ISO镜像文件的内核文件和初始化镜像文件,
如上图所示,是在tftp服务的数据目录/var/lib/tftpboot/下重新创建一个目录也就是centos66,这个centos66的目录专门用来存放centos6ISO镜像文件的内核vmlinuz和初始化镜像文件initrd.img。
3.配置需要tftp服务分享的菜单文件。
如上图所示,这是在编辑需要tftp服务分享的菜单文件,
如上图所示,在原有的centos7的菜单项基础上,再加上一个centos6菜单项。
4.测试pxe服务
如上图所示,可以看到两个菜单项,选择centos66即可
URL(Uniform Resource Locator),中文通常称为“统一资源定位符”,是一种用于标识互联网上资源位置的标准格式地址。它是互联网上每个网页、文件或其他资源的唯一标识符。简单来说,URL就是我们在浏览器地址栏输入的那一串字符,用来访问网站或网络上的其他资源。
如上图所示,机器要自动配置网卡。
如上图所示,因为centos6的初始化镜像文件,来源是URL,所以这个要填写这个初始化镜像文件的来源,是由ftp服务分享的,地址路径是ftp://192.168.183.10/centos66
五.配置kickstart文件实现centos7系统自动安装
写一个特殊文件,在这个文件中存上,在安装系统的时候如何创建分区,如何配置,
然后借助文件共享服务将这个文件共享出去,这个文件专业的称呼叫做ks文件,中文叫做自动应答文件。
作用:实现系统的自动安装,
kickstart文件格式:
1.常规配置
设置语言,时区,
设置root密码
磁盘分区
网卡
创建普通用户
2.安装软件
%packages
软件名称
软件名称
软件名称
@软件组名称
%end
3.系统安装完毕后自动执行的操作
以%post开头
操作命令
操作命令
操作命令
以%end结尾
获取kick start文件的方法:
1.
如上图所示,这个文件中记录的就是当时在安装系统的时候,是怎么安装的磁盘分区,是怎么进行的基础设置
2.
system-config-kick start图形化工具
在Linux操作系统中有一个图形化工具我们可以借助这个图像化工具去生成一个kick start文件。
如上图所示,这是用来指定将来我的机器生成加密文件的时候,使用什么样的数学算法进行加密。
如上图所示,这个是用来显示当时我在安装系统的时候,我是以光盘镜像的方式安装的系统。
如上图所示,因为我们设置的pxe服务需要从ftp服务上来获取光盘文件,所以设置url=ftp://192.168.1.1/centos66
如上图所示,这个表示的是我在安装系统的时候,所有的操作都是以图像界面的形式显示,
如上图所示,这个表示的是在安装系统的时候,不以图像化的方式显示安装过程而是以纯文本的方式显示安装过程。
如上图所示,这个表示的是将来在安装系统的时候,系统引导程序安装那块硬盘上。
如上图所示,这是系统键盘的设置,即设置系统键盘是否支持中文。
如上图所示,这是系统语言的设置,即系统语言是否支持中文,
如上图所示,这时在表示这块网卡是什么名称以及这块网卡应该以什么样的方式来获取IP地址。
以及机器的主机名称是什么
如上图所示,这个表示的是机器的root管理员用户的密码设置。
如上图所示,这是在表示当机器开机的时候,自动启动什么服务。
如上图所示,这是关于我机器时区的设置情况。
如上图所示,这是机器上关于磁盘分区情况的介绍。
如上图所示,@core这个软件组名就是最小化安装,
@minimal
chrony
如何使用图像化化工具来生成一个 kickstart文件?
如上图所示,先安装图像化工具。
如上图所示,Linux上的图像转化工具没有。
如上所示,这个文件在centos7的系统上都通用。
2.借助FTP服务,共享ks文件
3.编辑菜单文件
vim /var/lib/tftpboot/pxelinux.cfg/default
4.测试系统自动安装
六.配置kickstart文件实现centos6系统自动安装
如上图所示,需要修改网卡名称,因为centos6操作系统的第一块网卡名称是eth0
如上图所示,url --url="ftp://192.168.183.10/centos66":指定安装源的位置。这里使用FTP协议从IP地址为192.168.183.10的服务器下载CentOS 6.6的安装镜像。
如上图所示,这是关于用centos6的ISO镜像文件安装的机器的磁盘设计。
如上图所示,这是我将来希望在cetos6的机器上安装的软件
将来我希望在centos6安装的时候把centos7的所有yum源都备份,
如上图所示,如果我将来希望在centos6安装的时候把centos7的所有yum源都备份在安装centos6的机器上。
如上图所示,将来把这个作为kickstart文件的centos6.cfg的文件通过ftp服务共享出去。
如上图所示,这是在编辑vim /var/lib/tftpboot/pxelinux.cfg/default菜单文件,