Linux网络服务----PXE服务,批量网络装机

目录

  • 一、PXE服务部署
    • 1、PXE概述
      • 1>pxe批量部署优点
      • 2>PXE的工作过程
    • 2、配置PXE远程安装服务器
      • 1>配置文件
      • 2>基本部署过程
      • 3>实验过程
    • 3、验证PXE网络安装
  • 二、Kickstart 无人值守安装
    • 1、准备安装应答文件
      • 1>应答文件来源
      • 2>文件设置
    • 2、pxe与kickstart的结合实现批量自动装机

一、PXE服务部署

1、PXE概述

  • pxe(Preboote Xecute Environment,预启动执行环境)是由Intel公司开发的技术,也被称为预执行环境,提供了一种使用网络接口启动计算机的机制。
  • 它工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统。

1>pxe批量部署优点

  • 规模化:同时装配多台服务器
  • 自动化:安装系统,配置各种服务
  • 远程实现:不需要光盘,U盘等介质
    Linux网络服务----PXE服务,批量网络装机_第1张图片

2>PXE的工作过程

1.客户机从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP

2.DHCP服务器返回分给客户机IP以及bootstrap文件的放置位置(该文件一般是放在一台TFTP服务器上)

3.客户机向本网络中的TFTP服务器索取bootstrap文件

4.客户机取得bootstrap文件后之执行该文件

5.根据bootstrap的执行结果,通过TFTP服务器加载内核和文件系统

6.进入安装画面, 此时可以通过选择FTP,HTTP,NFS方式之一进行安装

  • 服务端:
    运行DHCP服务,用来分配地址,定位引导程序
    运行tftp服务,提供引导程序下载
  • 客户端:
    网卡支持pxe协议
    主板支持网络引导

2、配置PXE远程安装服务器

1>配置文件

dhcp服务:/etc/dhco/dhcpd.conf
tftp服务:/etc/xinetd.d/tftp
tftp站点:/var/lib/tftpboot
ftp服务站点:/var/ftp/

2>基本部署过程

  • 准备centos 7安装源(yum仓库)
    centos 7 安装源支持HTTP、FTP、NFS等协议发布
  • 安装并启用TFTP服务
    安装tftp-server软件包,启用tftp服务
    修改配置文件 disable = no
  • 准备Linux内核,pxe引导程序
    Linux内核,初始化镜像文件分别为vmlinuz和initrd.img
    引导程序为pxelinux.0 ,由软件包syslinux提供
    将系统镜像文件下的vmlinuz和initrd.img拷贝到tftp目录下
  • DHCP的pxe设置
    添加两个配置文件:next-server 指向tftp服务器地址
    filename “pxelinux.0” 指定引导程序文件
  • 配置启动菜单文件
    在tftp目录下写一个配置文件
/var/lib/tftpboot/写入一个文件
mkdir pxelinux.cfg
cd pxelinux.cfg/
vim default
default auto
prompt 1
label auto
  kernel vmlinuz
  append initrd=initrd.img method=ftp://192.168.195.100/centos7
label linux text
  kernel vmlinuz
  append text initrd=initrd.img method=ftp://192.168.195.100/centos7
label linux rescue
  kernel vmlinuz
  append rescue initrd=initrd.img method=ftp://192.168.195.100/centos7

3>实验过程

首先开启dhcp服务,指向tftp服务器

[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.195.0 netmask 255.255.255.0 {
  range 192.168.195.128 192.168.195.200;
  option routers 192.168.195.100;
  option domain-name-servers 8.8.8.8;
  next-server 192.168.195.100;    ##下一个服务tftp
  filename "pxelinux.0";      ##加载引导程序pxe
}
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd

安装启用tftp服务(需要四个文件:defaule,vmlinuz,initrd.img,pxelinux.0)

[root@localhost ~]# yum -y install tftp-server
[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        ##关闭
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
[root@localhost ~]# yum -y install syslinux      ##  安装引导程序
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot   ---将pxe服务放到tftp站点中

安装ftpd在vsftpd软件包镜像中中找到vmlinuz,initrd.img两个文件

[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# mount /dev/sr0 /var/ftp/centos7
[root@localhost ~]# cd /var/ftp/centos7/images/pxeboot/
[root@localhost ~]# cp vmlinuz initrd.img /var/lib/tftpboot/
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# cd pxelinux.cfg/
[root@localhost ~]# vim default
default auto
prompt 1
label auto
  kernel vmlinuz
  append initrd=initrd.img method=ftp://192.168.195.100/centos7

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

label linux rescue
  kernel vmlinuz
  append rescue initrd=initrd.img method=ftp://192.168.195.100/centos7
  
[root@localhost ~]# cd /var/lib/tftpboot/   ##查看tftp站点中的四个必要文件
[root@localhost tftpboot]# ls         
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz  
 ## pxelinux.0 是syslinux中的,initrd.img和vmlinuz是ftp中的, pxelinux.cfg是手动写进去的
[root@localhost ~]# iptable -F     ##关闭防火墙
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl enable dtftp
[root@localhost ~]# systemctl start ftpd
[root@localhost ~]# systemctl enable ftpd

3、验证PXE网络安装

装一台没有系统的虚拟机,开机测试自动安装

二、Kickstart 无人值守安装

  • 创建应答文件,预先定义好各种安装设置
  • 免去交互设置过程,从而实现自动化安装

1、准备安装应答文件

1>应答文件来源

  • 编辑centos 7 系统中现有的应答文件
    /root/anaconda-ks.cfg
  • 使用system-config-kickstart工具创建新的应答文件
    需要安装system-config-kickstart软件包

2>文件设置

Linux网络服务----PXE服务,批量网络装机_第2张图片
Linux网络服务----PXE服务,批量网络装机_第3张图片
Linux网络服务----PXE服务,批量网络装机_第4张图片

2、pxe与kickstart的结合实现批量自动装机

设置完成后root家目录会生成一个ks.cfg文件,然后将anaconda-ks.cfg文件中的package文本复制到ks.cfg文件中
然后进vim /var/lib/tftpboot/pxelinux.cfg/default添加ks=ftp://192.168.195.100/ks.cfg
Linux网络服务----PXE服务,批量网络装机_第5张图片
将mv ks.cfg /var/ftp/
随后完成自动装机服务

你可能感兴趣的:(Linux网络服务----PXE服务,批量网络装机)