PXE网络装机详细教程(单系统)

环境准备

SELinux与防火墙

[root@server ~]# getenforce 

Enforcing

[root@server ~]# setenforce 0

[root@server ~]# getenforce 

Permissive

[root@server ~]# vim /etc/selinux/config

[root@server ~]# yum  -y  remove  firewalld

DHCP服务器

•Dynamic Host Configuration Protocol

–动态主机配置协议,由 IETF(Internet 网络工程师任务小组)组织制定,用来简化主机地址分配管理

•主要分配以下入网参数

–IP地址/子网掩码/广播地址

–默认网关地址、DNS服务器地址

•DHCP地址分配的四次会话(以广播进行,先到先得

–DISCOVERY --> OFFER --> REQUEST -->ACK

一个网络中只能有一台DHCP服务器

KVM软件与VMware软件均提供DHCP服务

关闭VMware软件DHCP服务

关闭KVM软件DHCP服务

  1. KVM虚拟机,建立新的网络

 

2.KVM虚拟机,修改网络类型:haha(CentOS7虚拟机与RHEL8虚拟机都进行修改)

3.修改网卡eth0的IP地址

[root@server ~]# nmcli connection modify eth0 ipv4.addresses 192.168.100.2/24 

[root@server ~]# nmcli connection up eth0

[root@server ~]# ifconfig  |  head  -2

4.真机为Linux,在真机上操作

       ssh   root@192.168.100.2

•服务端基本概念

–租期:允许客户机租用IP地址的时间期限,单位为秒

–作用域:分配给客户机的IP地址所在的网段

–地址池:用来动态分配的IP地址的范围

虚拟机CentOS7:

1.安装软件包

[root@server /]# yum   -y   install   dhcp

[root@server /]# rpm  -q   dhcp

[root@server /]# vim /etc/dhcp/dhcpd.conf 

末行模式下 :r /usr/share/doc/dhcp*/dhcpd.conf.example    #读入其他文本文件内容

只保留这些内容:

#   see /usr/share/doc/dhcp*/dhcpd.conf.example

subnet 10.5.5.0 netmask 255.255.255.224 {

  range 10.5.5.26 10.5.5.30;

  option domain-name-servers ns1.internal.example.org;

  option domain-name "internal.example.org";

  option routers 10.5.5.1;

  option broadcast-address 10.5.5.31;

  default-lease-time 600;

  max-lease-time 7200;

}

2.修改主配置文件

[root@server /]# vim    /etc/dhcp/dhcpd.conf 

末行模式下 :r /usr/share/doc/dhcp*/dhcpd.conf.example #读入其他文本文件内容

# see /usr/share/doc/dhcp*/dhcpd.conf.example

subnet   192.168.100.0   netmask  255.255.255.0      #分配的网段

range  192.168.100.100   192.168.100.200;   #分配的IP地址范围

option domain-name-servers 192.168.100.254 #分配的DNS服务器地址

option routers 192.168.100.254;   #分配的网关地址

default-lease-time 600;    #默认的租期时间

max-lease-time 7200;    #最大的租期时间

}

[root@server /]# systemctl restart dhcpd   #重启dhcpd服务

[root@server /]# systemctl status dhcpd  #查看服务状态

● dhcpd.service - DHCPv4 Server Daemon

Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)

serverctive: active (running) 

3.验证:

虚拟机RHEL8:KVM虚拟机修改网络类型为haha

方式一:    

[root@pc2 ~]# vim  /etc/sysconfig/network-scripts/ifcfg-eth0 

........

IPADDR=192.168.88.2        #删除该行

PREFIX=24                   #删除该行

GATEWAY=192.168.88.254    #删除该行

[root@pc2 ~]# nmcli connection modify eth0 ipv4.method auto 

[root@pc2 ~]# ifdown  eth0       #彻底禁用

[root@pc2 ~]# ifup        eth0       #启用网卡

[root@pc2 ~]# ifconfig  |  head -2

方式二:专门测试的工具

[root@pc2 ~]# dhclient  -r     #释放IP地址

[root@pc2 ~]# dhclient  -d    #测试获取IP地址

按Ctrl  c结束

#################################################################

网络装机的优势

•规模化:同时装配多台主机

•自动化:装系统、配置各种服务

•远程实现:不需要光盘、U盘等物理安装介质

•PXE,Pre-boot eXecution Environment

预启动执行环境,在操作系统之前运行

–可用于远程安装

•工作模式

–PXE client 集成在网卡的启动芯片中

–当计算机引导时,从网卡芯片中把PXE client调入内存执行,获取PXE server配置、显示菜单,根据用户选择将远程引导程序下载到本机运行

•服务端需要哪些服务组件? 

–DHCP服务,分配IP地址、定位引导程序

–TFTP服务,提供引导程序下载

–FTP服务,提供yum安装源

•客户机应具备的条件

–网卡芯片必须支持PXE协议

–主板支持从网卡启动

#################################################################

网络装机服务器搭建

DHCP服务器构建

[root@server /]# vim   /etc/dhcp/dhcpd.conf

subnet   192.168.100.0    netmask    255.255.255.0 {

range   192.168.100.100     192.168.100.200;

option domain-name-servers   192.168.100.254;

option routers    192.168.100.254;

default-lease-time 600;

max-lease-time  7200;

next-server   192.168.100.2;   #指定下一个服务器IP地址

filename   "pxelinux.0";     #指定网卡引导文件名称

}

[root@server /]# systemctl  restart   dhcpd

pxelinux.0:网卡引导文件(网络装机说明书) 

二进制文件 安装一个软件即可获得此文件

二、构建TFTP服务

TFTP:简单文件传输协议    默认端口:69

默认TFTP共享数据的地方:/var/lib/tftpboot

1.安装软件包

[root@server /]# yum -y install tftp-server

[root@server /]# systemctl   restart   tftp

[root@server /]# systemctl   status   tftp

● tftp.service - Tftp Server

Loaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)

serverctive: active (running)

2.部署pxelinux.0文件

[root@server /]# yum provides */pxelinux.0  #查询仓库中那个软件包产生改文件

[root@server /]# yum -y install syslinux 

[root@server /]# rpm -ql syslinux  | grep  pxelinux.0  #查询软件包的安装清单

[root@server /]# cp   /usr/share/syslinux/pxelinux.0    /var/lib/tftpboot/

[root@server /]# ls   /var/lib/tftpboot/

思路:

DHCP服务----》IP地址、next-server、filename

tftp服务----》pxelinux.0

pxelinux.0---》读取/var/lib/tftpboot/pxelinux.cfg/default #菜单文件

3.部署菜单文件

[root@server /]# ls     /dvd/       #查看光盘内容

[root@server /]# mkdir   /var/lib/tftpboot/pxelinux.cfg

[root@server /]# cp     /dvd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default       #复制并且重命名

[root@server /]# ls     /var/lib/tftpboot/

pxelinux.0 pxelinux.cfg

[root@server /]# ls    /var/lib/tftpboot/pxelinux.cfg/

default

4.部署 图形的模块(vesamenu.c32)与 背景图片(splash.png)

[root@server /]# cp   /dvd/isolinux/vesamenu.c32    /dvd/isolinux/splash.png       /var/lib/tftpboot/

[root@server /]# ls   /var/lib/tftpboot/     

pxelinux.0 pxelinux.cfg splash.png vesamenu.c32

5.部署 启动的内核(vmlinuz)与 驱动程序(initrd.img)

[root@server /]# cp   /dvd/isolinux/vmlinuz    /dvd/isolinux/initrd.img /var/lib/tftpboot/

[root@server /]# ls    /var/lib/tftpboot/

initrd.img pxelinux.0 pxelinux.cfg splash.png vesamenu.c32  vmlinuz

6.修改菜单文件内容

[root@server /]# vim   /var/lib/tftpboot/pxelinux.cfg/default 

末行模式显示行号 :set   nu

1 default vesamenu.c32  #默认加载图形模块

2 timeout 600  #读秒时间 1/10秒

......

10 menu background splash.png  #背景图片

11 menu title NSD PXE Server  #显示的菜单标题

......

61 label linux

62 menu label ^Install CentOS 7  #菜单文件的显示内容

63 menu   default  #读秒结束后默认选择

64 kernel vmlinuz       #加载vmlinuz内核

65 append initrd=initrd.img  #加载initrd.img

以下内容全部删除

思路:

DHCP服务----》IP地址、next-server、filename

tftp服务----》pxelinux.0

pxelinux.0---》读取/var/lib/tftpboot/pxelinux.cfg/default #菜单文件

default---》加载图形模块(vesamenu.c32)、加载背景图片(splash.png)、显示标题、加载内核、加载驱动程序.......

三、初步测试

思路:

DHCP服务----》IP地址、next-server、filename

tftp服务----》pxelinux.0

pxelinux.0---》读取/var/lib/tftpboot/pxelinux.cfg/default #菜单文件

default ---》图形模块、背景图片、读秒、内核、驱动 

1.建立测试的机器

 

 修改测试机器的网络类型

 KVM环境:

 

 

常见错误:     

1.DHCP服务器配置文件内容

2.菜单文件内容

3./var/lib/tftpboot/部署的6项数据

4.防火墙与SELinux是否关闭

5.dhcpd服务与TFTP服务是否启动

四、构建FTP服务器

1.利用FTP服务共享光盘的所有内容

[root@server /]# yum   -y   install   vsftpd

[root@server /]# mkdir   /var/ftp/centos

[root@server /]# ls    /var/ftp/centos

[root@server /]# mount   /dev/cdrom    /var/ftp/centos

mount: /dev/sr0 写保护,将以只读方式挂载

[root@server /]# ls   /var/ftp/centos

[root@server /]# systemctl   restart   vsftpd

[root@server /]# yum   -y  install   lftp

[root@server /]# lftp  192.168.99.1

lftp 192.168.88.1:~> cd   centos

lftp 192.168.88.1:/centos> ls            #查看是否有光盘内容

五、部署无人值守安装,生成应答文件 

]# yum -y install system-config-kickstart

]# rpm -q system-config-kickstart

]# system-config-kickstart

 软件包的选择被禁止

软件包的选择,需要本地Yum仓库的支持,要求指向光盘的仓库,标识必须为[development]

[root@server /]# vim /etc/yum.repos.d/dvd.repo 

[development]

name=CentOS7

baseurl=file:///dvd

enabled=1

gpgcheck=0

[root@server /]# system-config-kickstart

 

部署应答文件

[root@server /]# ls   /root

[root@server /]# vim    /root/ks.cfg    #不需要修改,大致浏览即可

[root@server ~]# cp   /root/ks.cfg    /var/ftp/

[root@server ~]# ls   /var/ftp/

centos  ks.cfg  pub

[root@server ~]# 

修改菜单文件指定获取应答文件 

[root@server /]# vim    /var/lib/tftpboot/pxelinux.cfg/default

.......

label linux

menu label ^Install CentOS 7

menu default

kernel vmlinuz

append initrd=initrd.img  ks=ftp://192.168.100.2/ks.cfg #指定获取应答文件

总结思路

DHCP服务----》IP地址、next-server、filename

tftp服务----》pxelinux.0

pxelinux.0---》读取/var/lib/tftpboot/pxelinux.cfg/default #菜单文件

default ---》图形模块、背景图片、读秒、内核、驱动 、指定获取应答文件

应答文件 ---》软件如何获得 url --url="ftp://192.168.100.2/centos"、装系统的各项选择


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部