Linux网络服务——PXE网络批量装机+Kickstart无人值守安装(上)

简介: 1 系统安装介绍1.1 系统装机的三种引导方式硬盘光驱网络

1 系统安装介绍


1.1 系统装机的三种引导方式

  1. 硬盘
  2. 光驱
  3. 网络

1.2 系统安装过程

  • 加载 boot loader
  • 加载启动安装菜单
  • 加载内核和initrd系统
  • 加载根系统
  • 运行anaconda的安装向导


2 PXE介绍


2.1 什么是PXE

PXE( Preboot eXecution Environment,预启动执行环境 )是由Inter公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统。

PXE是通过网卡引导启动。


2.2 PXE服务优点

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

2.3 搭建PXE网络体系所需条件

① 客户机

  • 客户机的网卡要支持PXE协议(集成BOOTROM芯片)。
  • 网卡自带DHCP服务和TFTP服务。
  • 主板支持网络引导。有一些需在BIOS设置中允许从 Network 或 LAN 启动即可。

② 服务端

  • 配置 DHCP 服务器 :为客户机自动分配地址、指定引导文件位置(指明TFTP服务器地址)。
  • 服务器要开启 TFTP 服务(简单文件传输协议):用来提供系统内核和引导镜像文件的下载。
  • 安装软件包syslinux :提供PXE引导程序。


  • 服务器提供FTP服务(或http) :提供安装源(例如镜像文件系统等)。


2.4 PXE装机需要的四大文件

  • pxelinux.0:引导程序。(来自syslinux程序)
  • default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)
  • vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)
  • initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)

说明initrd的作用:

  • initrd 的英文含义是 boot loader initialized RAM disk,即由引导程序初始化的RAM磁盘。initrd是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd与内核绑定在一起, 并作为内核引导过程的一部分进行加载。内核然后会将这个initrd文件作为其阶段引导过程的一部分来加载模块,这样才能在以后的引导过程中使用真正的文 件系统,并挂载实际的根文件系统。根文件系统可以存储在包括IDE、SCSI、USB在内的多种介质上,如果将这些设备的驱动都编译进内核,可以想象内核 会多么庞大、臃肿。所以可以把initrd看做是在启动过程中连接内核与根文件系统的一个桥梁。


2.4 PXE实现过程讲解

  1. 客户机的网卡查找相关的dhcp服务器(获取地址和时间)。
  2. DHCP服务器给客户机分配IP地址和引导程序(boot loader)的地址 ,同时通过offer报文把TFTP服务器的地址发给客户机。
  3. TFTP服务器把引导文件(pxelinux.0)传给客户机。
  4. 客户机将引导程序加载到内存中来。
  5. 引导程序去TFTP服务器中查找配置文件,服务器将配置文件传给客户机。(配置文件中指定客户机使用ftp方式连接服务器获取系统镜像文件)
  6. 服务端安装并启动vsftpd服务,客户机使用ftp服务获取系统镜像文件。

网络异常,图片无法展示
|


3 搭建过程中服务详解


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

网卡自带DHCP服务和TFTP服务。

3.1 DHCP服务

DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。

3.2 TFTP服务

  • TFTP(简单文件传输协议),是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。
  • TFTP服务一般只在装机这种场景下使用,用于传输内核和引导文件。因为安全性不高。
  • 自带的站点:/var/lib/tftpboot


3.3 syslinux

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

安装syslinux程序后,可获得 pxelinux.0 文件。

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

可以使用http、ftp等方式,ftp文件传输的一种,vsftpd是提供ftp服务的软件之一。


4 PXE网络装机操作过程


实验环境:

服务器内网IP地址:192.168.137.100。

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、安装四个软件包:dhcp、tftp-server、vsftpd、syslinux。

[root@localhost ~]# yum install dhcp tftp-server.x86_64 vsftpd syslinux -y
复制代码


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

[root@localhost ~]# cd /etc/sysconfig/network-scripts
 [root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36
 [root@localhost network-scripts]# vim ifcfg-ens36
 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=ens36
 #UUID=bdc9ad35-297a-413f-a7f2-be27868e0e72
 DEVICE=ens36
 ONBOOT=yes
 IPADDR=192.168.137.100
 NETMASK=255.255.255.0
 GATEWAY=192.168.137.100
 #DNS1=8.8.8.8
 [root@localhost network-scripts]# systemctl restart network
 [root@localhost network-scripts]# ifconfig ens36
 ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
         inet 192.168.137.100  netmask 255.255.255.0  broadcast 192.168.137.255
         inet6 fe80::82e9:8745:7968:b6b2  prefixlen 64  scopeid 0x20<link>
         ether 00:0c:29:18:b5:09  txqueuelen 1000  (Ethernet)
         RX packets 1622  bytes 151899 (148.3 KiB)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 300  bytes 50668 (49.4 KiB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


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]#
 # 编辑dhcp配置文件
 [root@localhost ~]# vim /etc/dhcp/dhcpd.conf
 -----------------------------------
 subnet 192.168.137.0 netmask 255.255.255.0 {     //设置子网IP、子网掩码
   range 192.168.137.20 192.168.137.80;           //设置地址池
   option routers 192.168.137.10;                 //设置网关地址
   next-server 192.168.137.100;                   //指明TFTP服务器地址
   filename "pxelinux.0";            //声明使用pxelinux.0文件
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


4、修改TFTP服务配置文件/etc/xinetd.d/tftp,将服务开启(默认是关闭状态)。

[root@localhost ~]# rpm -qc tftp-server        //查看tftp-server的配置文件位置
 /etc/xinetd.d/tftp
 [root@localhost ~]# vim /etc/xinetd.d/tftp     //编辑配置文件
 -------------------------------
 service tftp
 {
         socket_type             = dgram
         protocol                = udp
         wait                    = yes
         user                    = root
         server                  = /usr/sbin/in.tftpd
         server_args             = -s /var/lib/tftpboot
         disable                 = no            //将这里的yes修改成no,即开启服务
         per_source              = 11
         cps                     = 100 2
         flags                   = IPv4
复制代码


网络异常,图片无法展示
|


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

# 挂载光盘,先将光盘内的两个文件vmlinuz、initrd.img拷入/var/lib/tftpboot目录。
 [root@localhost ~]# cd /var/ftp
 [root@localhost ftp]# mkdir centos7
 [root@localhost ftp]# mount /dev/sr0 centos7    //将光盘挂载到/var/ftp/centos7/目录下
 mount: /dev/sr0 写保护,将以只读方式挂载
 [root@localhost ftp]# cd centos7
 [root@localhost centos7]# ls
 CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
 EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
 EULA             isolinux  repodata  TRANS.TBL
 [root@localhost centos7]# cd isolinux
 [root@localhost isolinux]# ls
 boot.cat  grub.conf   isolinux.bin  memtest     TRANS.TBL     vmlinuz
 boot.msg  initrd.img  isolinux.cfg  splash.png  vesamenu.c32
 [root@localhost isolinux]# cp vmlinuz initrd.img /var/lib/tftpboot   //将光盘内的2个文件拷入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    //查找pxelinux.0文件位置
 /usr/share/syslinux/gpxelinux.0
 /usr/share/syslinux/pxelinux.0
 [root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./   //将pxelinux.0文件拷入tftpboot目录
 [root@localhost tftpboot]# ls
 initrd.img  pxelinux.0  vmlinuz
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|



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

[root@localhost tftpboot]# mkdir pxelinux.cfg     //创建子目录pxelinux.cfg
 [root@localhost tftpboot]# cd pxelinux.cfg/
 [root@localhost pxelinux.cfg]# vim default        //编写default文件
 #默认选项
 default auto
 #开机不等待,也可以设置timeout 600,默认等待60秒
 prompt 1
 label auto
   kernel vmlinuz
   append initrd=initrd.img method=ftp://192.168.137.100/centos7
 label text
   kernel vmlinuz
   append text initrd=initrd.img method=ftp://192.168.137.100/centos7
 label rescue
   kernel vmlinuz
   append rescue initrd=initrd.img method=ftp://192.168.137.100/centos7
 [root@localhost pxelinux.cfg]# cd ..     //切换到上级目录
 [root@localhost tftpboot]# tree          //以树形图查看目录下的文件
 .
 ├── initrd.img
 ├── pxelinux.0
 ├── pxelinux.cfg
 │   └── default
 └── vmlinuz
 1 directory, 4 files
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


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
复制代码


网络异常,图片无法展示
|


相关文章
|
6天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
19 2
|
16天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
39 5
linux系统服务二!
|
16天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
37 3
linux系统服务!!!
|
10天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
28 5
|
6天前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
35 0
|
12天前
|
关系型数据库 MySQL Linux
Linux-安装Mariadb
本文介绍了在 Alibaba Cloud Linux 系统上安装和配置 MariaDB 10.5 的步骤。包括下载安装、初始化数据库、启动服务、处理启动失败的常见问题(如权限问题),以及如何连接数据库、设置密码和允许外部连接。通过这些步骤,您可以顺利完成 MariaDB 的安装和基本配置。
26 0
|
6天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
19 2
|
7天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第38天】本文将探讨网络安全与信息安全的重要性,包括网络安全漏洞、加密技术和安全意识等方面。我们将通过代码示例和实际操作来展示如何保护网络和信息安全。无论你是个人用户还是企业,都需要了解这些知识以保护自己的网络安全和信息安全。
|
6天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务中的信息安全策略
【10月更文挑战第39天】随着云计算的飞速发展,越来越多的企业和个人将数据和服务迁移到云端。然而,随之而来的网络安全问题也日益突出。本文将从云计算的基本概念出发,深入探讨在云服务中如何实施有效的网络安全和信息安全措施。我们将分析云服务模型(IaaS, PaaS, SaaS)的安全特性,并讨论如何在这些平台上部署安全策略。文章还将涉及最新的网络安全技术和实践,旨在为读者提供一套全面的云计算安全解决方案。
|
6天前
|
存储 安全 网络安全
网络安全与信息安全:漏洞、加密技术与安全意识的交织
【10月更文挑战第39天】在数字化时代,网络安全与信息安全成为保护个人隐私和组织资产的重要屏障。本文将探讨网络安全中的常见漏洞、加密技术的应用以及提升安全意识的重要性。通过具体案例分析,我们将深入了解网络攻击的手段和防御策略,同时提供实用建议,以增强读者对网络安全的认识和防护能力。