Linux-PXE自动装机(CENTOS7)

Linux-PXE自动装机配置

1. PXE装机原理简介

PXE是有Intel公司开发的网络引导技术,工作在Client/Server模式(也简称CS模式),允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整改操作系统。

通过网卡默认支持的自动获取IP(DHCP),与简单文件传输协议(TFTP),使得同一局域网下的机器可以通过网络获取安装系统所需的文件,从而实现自动装机。

PXE自动化装机的优点如下:

  1. 规模化:同时装配多台服务器,无需每一台单独安装操作系统;
  2. 自动化:实现服务器的自动安装及自动配置各种服务;
  3. 远程实现:不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器安全。

2.PXE装机要求

2.1 客户机要求

客户机的网卡要支持PXE协议(集成BOOTROM芯片)

主板支持网络引导。有一些需在BIOS设置中允许从 Network 或 LAN 启动即可。

2.2 服务端要求

DHCP 服务器 :为客户机自动分配地址、指定引导文件位置。

服务器要开启 TFTP服务(简单文件传输协议):用来提供系统内核和引导镜像文件的下载。

服务器中使用FTP服务(或http/nfs)font> :提供yum安装源

安装软件包syslinux :提供PXE引导程序

3. PXE自动装机过程与服务端配置(以安装Centos7为例)

3.1 自动装机过程简介

1.网卡需要查找相关的dhcp服务器(获取地址时间)

2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)

3.网卡使用tftp客户端吧引导程序加载到内存中来

4.bios执行引导程序

5.引导程序会去TFTP去查找配置文件

6.根据配置文件去引导安装系统

3.2 服务端配置

服务端需要安装dhcp服务(用于给局域网内主机分配IP)、TFTP服务(提供安装系统的内核文件),FTP服务(提供yum安装源可选)

在安装配置服务前首先关闭防火墙与SELINUX,确保主机间通信正常。

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install dhcp tftp-server vsftpd syslinux -y   ###必备软件

3.2.1 配置DHCP服务

[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y                ###复制DHCP模板配置文件
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf 
################新增DHCP配置###########
 27 subnet 192.168.186.0 netmask 255.255.255.0 {
 28   range 192.168.186.10 192.168.186.50;
 29   option routers 192.168.186.1;
 30   next-server 192.168.186.5;                      ###提供TFTP服务的主机
 31   filename "pxelinux.0";                          ###固定名称,安装系统的文件
 32 }
 ######################################
:wq

3.2.2 配置TFTP服务与软件包syslinux

[root@localhost ~]# vim /etc/xinetd.d/tftp   
################修改第14行:yes改为no###############  
  6 service tftp
  7 {
  8         socket_type             = dgram
  9         protocol                = udp
 10         wait                    = yes
 11         user                    = root
 12         server                  = /usr/sbin/in.tftpd
 13         server_args             = -s /var/lib/tftpboot
 14         disable                 = yes————>no                     ##yes改为no
 ################################################
 :wq
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# mount /dev/sr0 /var/ftp/centos7        ###挂载光盘
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ftp]# cd ./centos7/isolinux/
[root@localhost isolinux]# ls
boot.cat  boot.msg  grub.conf  initrd.img  isolinux.bin  isolinux.cfg  memtest  splash.png  TRANS.TBL  vesamenu.c32  vmlinuz
[root@localhost isolinux]# cp initrd.img vmlinuz   /var/lib/tftpboot/   ###复制安装系统必备文件
[root@localhost isolinux]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default
###############配置安装菜单#####################
default auto
prompt 1

label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.186.5/centos7 ks=ftp://192.168.186.5/ks.cfg


label linux text
        kernel vmlinuz
        append text initrd =initrd.img method=ftp://192.168.186.5/centos7

label linux rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.186.5/centos7
#######################################################
[root@localhost pxelinux.cfg]# rpm -ql syslinux |grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost pxelinux.cfg]# cp /usr/share/syslinux/pxelinux.0 ../    
[root@localhost pxelinux.cfg]# cd ../
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz                ###tftp所需要提供的文件

3.2.3 安装配置kickstart,完成系统安装自动化配置

[root@localhost tftpboot]# yum install system-config-kickstart -y

kickstart是图形化配置工具,用以完成系统安装过程中的环境配置。
image

1.配置时区与root密码
image
2.配置软件安装方式(这里使用的是ftp方式)
image
3.boot读取选项
image
4.分区信息,这里选择新建。必备的swap分区与根分区(/),但一般也要加一个boot分区。
image
一般swap分区为内存的两倍,boot分区一般500MB就足够了,分区完成后的样子
image
5.网卡配置信息,新增网卡名,ip使用dhcp分配。
image
6.认证选项默认即可
image
7.防火墙配置关闭(disable)
image
8.图形化界面安装(按需),这里选择不安装图形化界面。
image
9.安装包配置,默认即可。
image
10.安装前配置脚本,新加个解释器地址/bin/bash
image
11.安装后配置脚本,配置解释器地址/bin/bash,可以写个加用户脚本。
image
12.完成配置后保存配置文件至/var/ftp,文件名要与3.2.2中的default文件配置的一样。
image
image
13.kickstart有时会有bug,打开/var/ftp/ks.cfg查看配置文件是否正确。

[root@localhost tftpboot]# cd /var/ftp
[root@localhost ftp]# ls
centos7  ks.cfg  pub
[root@localhost ftp]# vim ks.cf

image

3.2.4 启动服务

[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl start vsftpd

3.2.5 验证

新配置一个未安装系统的虚拟机。不要使用CD启动(可以选择去除CD驱动器),确保该主机与服务端在同一局域网。

image

启动后,到该界面需要回车一下。
image

由于没有安装图形化界面,只有310个文件需要安装。到这一步需要等待一段时间(可能与配置有关)后重启。

image

等待重启后,可以正常登录。可以选择root登录,使用的是kickstart中第一步配置的root密码。

image

posted @ 2022-04-03 21:46  残-云  阅读(604)  评论(0编辑  收藏  举报