Linux网络服务-PXE高效批量网络装机与kickstart 无人值守安装

系统装机的三种引导方式

1.硬盘

2.光驱(u盘)

3.网络

系统安装过程

  • 加载boot loader

Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境

  • 加载启动安装菜单
  • 加载内核和initrd系统(文件才能使用文件)
  • 加载根系统()
  • 运行anaconda的安装向导

什么是pxe

PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。

pxe是通过网卡引导启动

1.1实现的硬件条件

1.BIOS支持

2.网卡支持(现在基本都已支持)

3.需要在bios中开启开关,服务器一般没打开(bmc界面里打开)

4.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置 网卡自带DHCP功能 dhcp 指明分配的ip地址

5.服务器通过 tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载 udp()协议 网卡自带这个功能(不支持其他的远程共享服务)

自带的站点(/var/lib/tftp?) initrd.img(驱动) vmlinuz(内核) pxelinux.cfg/default(引导文件) pxelinux.0(小型的grub程序) tftp 指明?

实现过程

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

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

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

4.bios执行引导程序

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

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

7.系统安装过程

在这里插入图片描述

搭建过程中服务详解

PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能 够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。

TFTP服务

TFTP(简单文件传输协议):内核和引导文件

是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。

vsftp:安装系统镜像文件获取方式

可以使用http ftp等方式,ftp文件传输的一种。

syslinux

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。

pxelinux.0 启动pxe pxe可以支持

pxe 优点

1.规模化:同时装配多台服务器
2.自动化:安装系统、配置各种服务
3.远程实现:不需要光盘、U盘等安装介质

操作过程

大概过程

  1. 分配给同一局域网内新加机器的地址(配置文件) dhcp 分配地址 指明tftp 服务器的地址
  2. tftp服务端开启 udp 配置 默认关闭
  3. 安装syslinux 取得 pxelinux.0 文件
  4. 安装vsftpd服务挂载软件安装源(mount /dev/sr0 /var/ftp/centos7)
  5. 将四大文件拷入 (/var/lib/tftpboot )
  • initrd.img
  • pxelinux.0 (类似grub)
  • pxelinux.cfg/default (手写)
  • vmlinuz

6.将服务开启,关闭防火墙,selinux

pxe网络装机操作过程

实验环境:
服务器内网IP地址:20.0.0.200

DHCP、TFTP、FTP服务全都搭建在这一台服务器上。

简易流程:
1.安装4个软件包:dhcp、tftp-server、vsftpd、syslinux(取得prelinux.0文件)。
2.配置DHCP服务器,分配IP地址,指明tftp服务器的地址。(虚拟机需要开启仅主机模式,模拟内网环境)
3.编辑TFTP服务配置文件,开启服务(默认是关闭状态)。
4.挂载软件安装源(通常情况下都使用光盘中的安装源,即挂载光驱),并将三大文件先拷入/var/lib/tftpboot/ 目录中:pxelinux.0,vmlinuz,initrd.img。
5.在/var/lib/tftpboot/ 目录下,创建子目录pxelinux.cfg,在子目录下编写引导程序的配置文件default。
6.关闭防火墙和selinux。启动dhcpd、tftp、vsftpd。
7.使用空白客户机(裸机)测试能否自动装机。

服务器配置操作步骤:
1.安装4个软件包:dhcp、tftp-server、vsftpd、syslinux(取得prelinux.0文件)

[root@localhost ~]# yum install dhcp tftp-server vsftpd syslinux -y

在这里插入图片描述

2.把虚拟机第二块网卡设置为仅主机模式,修改网卡配置文件,重启网络服务,模拟内网环境。

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=12a880c9-318e-4aa5-b143-e730606be7f1
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.75.200
NETMASK=255.255.255.0
GATEWAY=192.168.75.2
#DNS1=8.8.8.8
#DNS2=114.114.114.114
~  

[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.75.200  netmask 255.255.255.0  broadcast 192.168.75.255
        inet6 fe80::1e19:a8d4:a94a:6a4e  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:a4:34:b5  txqueuelen 1000  (Ethernet)
        RX packets 21801  bytes 31826589 (30.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8063  bytes 505194 (493.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost ~]# 

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
3.配置DHCP服务器,分配IP地址,指明tftp服务器的地址。

[root@localhost ~]# cd /usr/share/doc/dhcp-4.2.5/
[root@localhost dhcp-4.2.5]# ls
dhcpd6.conf.example  dhcpd.conf.example  ldap
[root@localhost dhcp-4.2.5]# cp dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes
[root@localhost dhcp-4.2.5]# vim /etc/dhcp/dhcpd.conf

subnet 192.168.75.0 netmask 255.255.255.0 { //设置子网IP、子网掩码
   range 192.168.75.200 192.168.75.250;   //设置子网IP、子网掩码   
   option routers 192.168.75.200;   //设置网关地址         
   next-server 192.168.75.2;   //指明TFTP服务器地址           
   filename "pxelinux.0";         //声明使用pxelinux.0文件

}


在这里插入图片描述
4.、修改TFTP服务配置文件/etc/xinetd.d/tftp,将服务开启(默认是关闭状态)。

[root@localhost ~]# rpm -qc tftp-server
/etc/xinetd.d/tftp
[root@localhost ~]# vim /etc/xinetd.d/tftp  //编辑TFTP配置文件

在这里插入图片描述
5、将光盘挂载到/var/ftp的子目录centos7下,并将三大文件先拷入/var/lib/tftpboot/ 目录中:vmlinuz,initrd.img。pxelinux.0。

[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# mount /dev/sr0 centos7
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ftp]# cd centos7
[root@localhost 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@localhost centos7]# cd 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 vmlinuz initrd.img /var/lib/tftpboot
[root@localhost isolinux]# cd /var/lib/tftpboot
[root@localhost tftpboot]# ls
initrd.img  vmlinuz




在这里插入图片描述

 # 将pxelinux.0文件拷入/var/lib/tftpboot目录。
[root@localhost tftpboot]# rpm -ql syslinux |grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  vmlinuz
[root@localhost tftpboot]# 

在这里插入图片描述
6.在/var/lib/tftpboot/ 目录下,创建子目录pxelinux.cfg,在pxelinux.cfg目录下编写引导程序的配置文件default。(可参考光盘 isolinux 目录下的 isolinux.cfg 文件)

[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default

 #默认选项
 default auto
 #开机不等待,也可以设置timeout 600,默认等待60秒
 prompt 1
 <200b>
 label auto
   kernel vmlinuz
   append initrd=initrd.img method=ftp://192.168.75.200/centos7
 <200b>
 label text
   kernel vmlinuz
   append text initrd=initrd.img method=ftp://192.168.75.200/centos7
 <200b>
 label rescue
   kernel vmlinuz
   append rescue initrd=initrd.img method=ftp://192.168.75.200/centos7

在这里插入图片描述
6、关闭防火墙和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、开启虚拟机:

虚拟机自动获取IP地址、自动安装镜像文件系统,最后出现图形化界面,之后的参数需要手动设置。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值