CentOS7中PXE网络装机并且实现无人值守批量装机(装机过程全程无需动手)

----------------------基本概述----------------------

PXE是由Inter公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网路从远程服务器下载引导镜像,并加载安装文件或者整个操作系统

---------安装PXE批量装机所需要的服务---------

DHCP+TFTP+DHTP

---------安装PXE所需要的文件--------------

引导程序pxelinux.0
压缩内核vmlinuz
系统初始化文件initrd.img
启动菜单default
·
DHCP:自动分配IP地址,定位引导文件。
TFTP:存放安装系统的引导文件,加载速度快(理由是因为引导文件小,需要的是高效操作)
FTP:存放系统文件,容量大 (TCP协议,系统文件需要的是安全稳定的传输)

系统环境

CentOS7 作为一台服务端:运行DHCP服务用来分配地址、定位引导程序,运行TFTP服务器,提供引导程序下载
CentOS7作为一台客户端:网卡支持PXE协议,主板支持网络启动

实际操作

1、首先部署PXE服务器,要知道PXE是在局域网的环境下是使用的,但是因为我们需要安装服务所需要的软件包(也可以创建私有YUM仓库),所以需要再添加一块网卡设置为仅主机模式,这样就既可以安装所需的软件包,又可以再局域网内进行引导服务

·

1、首先我们把新添加的网卡进行配置,将ens33的网络配置文件模板复制一份到ens36里,然后输入"vim ifcfg-ens36",进入ens36的网络配置文件里,将ens36配置为静态IP,按"/"输入dhcp,敲击回车,按"dw"删除改为"static",将配置文件中所有的"ens33"改为"ens36",按"dd"删除UUID=c9fb678c-82b2-44b7-93ee-ab6d56e066cb,再配置上网关地址为192.168.100.1,按"wq"保存退出,这样ens36的网络就配置好了,配置完之后重新启动,让其生效

[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
[[email protected] network-scripts]# vim ifcfg-ens36
[[email protected] network-scripts]# service network restart



·

2、使用"ifconfig"命令查看修改后的ens36IP地址、MAC地址是否生效

[[email protected] network-scripts]# ifconfig

·

3、双网卡配置结束之后我们就要开始安装服务了,首先安装DHCP服务,输入"yum intsall dhpd -y"开始安装DHCP服务

[[email protected] network-scripts]# yum install dhcp -y

·

4、接下里就是配置DHCP的过程,输入"cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf"复制一个模板到DHCP配置文件中,输入"yes"确认覆盖

[[email protected] network-scripts]# cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

·

5、模板复制好了之后进入DHCP的配置文件里进行修改
详细步骤

[[email protected] network-scripts]# vim /etc/dhcp/dhcpd.conf 
subnet 192.168.100.0 netmask 255.255.255.0 {
        range 192.168.100.20 192.168.100.30;
        option routers 192.168.100.100;
        option domain-name-servers 10.10.10.10;
        filename "pxelinux.0";
}

subnet 192.168.100.0 netmask 255.255.255.0(设置网段为192.168.100.0、MAC地址不变)
range 192.168.100.20 192.168.100.30;(配置DHCP服务分配给客户端的地址范围)
option routers 192.168.100.100;(网关设置为指向本地)
option domain-name-servers 10.10.10.10;(分配DNS地址)
net-server 192.168.100.100;(指向TFTP服务器)
filename "pxelinux.0";(指向引导文件位置)

·

6、配置完DHCP配置文件之后就可以安装引导程序文件

[[email protected] network-scripts]# yum install syslinux -y

·

7、安装完之后可以输入"[[email protected] network-scripts]# rpm -ql syslinux | grep pxelinux.0",可以看到文件的路径位置,但是我们应该把它放在TFTP里,因为刚才在配置文件中我们指向了TFTP路径"pxelinux.0",

·

8、安装我们所需要的使用的tftp服务,输入[[email protected] network-scripts]# yum install tftp-server -y"

[[email protected] network-scripts]# yum install tftp-server -y

·

9、tftp服务安结束之后我们需要知道它的配置文件和站点,输入"[[email protected] ~]# rpm -ql tftp-server",其中"/etc/xinetd.d/tftp"是tftp服务的配置文件,"/var/lib/tftpboot"是tftp服务的站点

[[email protected] ~]# rpm -ql tftp-server

·

10、现在把引导程序"pxelinux.0"放入到tftp服务站点里

[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

·

11、进入配置文件修改enable启动tftp服务,输入"vim /etc/xinetd.d/tftp",将配置文件中"enable"一行中的"yes"改为"no"即可

[[email protected] ~]# vim /etc/xinetd.d/tftp 

·

12、安装ftp服务使用里面的镜像文件,输入"yum install vsftpd -y"

[[email protected] ~]# yum install vsftpd -y

·

13、进入到ftp站点中拆创建文件夹"centos7"作为挂载目录,可以选择复制到"centos7"也可以直接挂载,这里需要把虚拟机中的镜像文件连接上才可以进行挂载

[[email protected] ~]# cd /var/ftp/
[[email protected] ftp]# mkdir centos7
[[email protected] ftp]# mount /dev/sr0 /var/ftp/centos7

·

14、将初始化文件和压缩内核文件放到"/var/libtftpboot/(tftp服务站站点),

[[email protected] pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/

·

15、通过查看可以看到tftp服务站点中就差启动菜单配置好,接下来就是配置启动菜单,进入到"tftpboot"中创建"pxelinux.cfg"目录(此目录名千万不能错)

[[email protected] tftpboot]# mkdir pxelinux.cfg

·

16、进入到pxelinux.cfg中,手动编辑启动菜单"default",编辑完之后"wq"保存退出
详细配置

default auto
prompt 1

label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.100.100/centos7

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

label linux rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7

·

17、所有的文件都配置好了之后就剩下最后一步了,关闭防火墙、增强性安全功能,然后启动所有服务

[[email protected] pxelinux.cfg]# systemctl stop firewalld.service(关闭防火墙)
[[email protected] pxelinux.cfg]# setenforce 0(关闭增强性安全功能)
[[email protected] pxelinux.cfg]# systemctl start dhcpd(启动dhcp服务)
[[email protected] pxelinux.cfg]# systemctl start tftp(启动tftp服务)
[[email protected] pxelinux.cfg]# systemctl start vsftpd(启动ftp服务)


-------------------无人装机服务--------------

1、要想实现装机过程无需手动,我们这里就需要安装"kickstart"

[[email protected] ~]# yum install system-config-kickstart -y

·

2、安装完之后我们进入虚拟机中,点击应用程序在系统工具中可以看到"Kiskstart",用它创建模板文件

·

3、点击进入就开始配置"Kiskstart"程序
基本配置
默认语言:中文(简体)
键盘:U.S.English
时区:Asia/Shanghai
Root密码:
勾选安装后重启

安装方法
安装方法:执行全新安装
安装方法:FTP

分区信息
点击添加
/boot:500M
/home:4096M
swap:4096M
/:使用磁盘上全部未分配空间

网络设置
点击添加网络设备

防火墙设置

安装后脚本

基本配置已经满足,点击左上角的文件保存,将文件保存在文件系统"/var/ftp/

·

4、"Kiskstart"配置完,我们需要把"root"目录中"anaconda-ks.cfg"里的主机安装包作为模板复制到"ks.cfg"中,如果不复制的话安装的时候选组件就会失败

[[email protected] ftp]# vim anaconda-ks.cfg
[[email protected] ftp]# vim ks.cfg

5、先进入到"/var/lib/tftpboot/中,再进入到"/pxelinux.cfg"中可以看到"default",编辑"default"在自动模式里添加kickstart配置文件的路径

[[email protected] ~]# cd /var/lib/tftpboot/
[[email protected] tftpboot]# cd pxelinux.cfg/
[[email protected] pxelinux.cfg]# vim default 


6、最后我们新建一台虚拟机,在安装时选择稍后稍后安装操作系统,然后选择仅主机模式,点击运行虚拟机就可以看到自动安装CentOS7了

原文地址:https://blog.51cto.com/14307755/2438694

时间: 2024-10-12 16:10:44

CentOS7中PXE网络装机并且实现无人值守批量装机(装机过程全程无需动手)的相关文章

在CentOS7中配置网络成组(NetworkTeam)

在CentOS7中推荐网络成组的方式替代以往的网卡绑定,对于具体的操作在红帽子的白皮书中已经有详细的论述,具体可以参看https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/index.html 本人在配置网络成组(NetworkTeam)时,使用了nmtui的方式,但按照白皮书上的操作,未能成功.后来经过自己排查,结合上述白皮书中5.10.3中使用ifcfg的配

在CentOS7中配置网络时常见的LSB加载失败问题

前几天,为了给OpenNebula扩展新的主机节点,对CentOS7的网络进行了配置.本以为网络配置只需要简单修改ifcfg-eth0即可,但是在重启网络服务时却遇到了一个LSB加载失败的问题(Fail to load LSB: Up and -..). 这个问题源于CentOS7对物理网卡硬件地址的要求.也就是说,在ifcfg-eth0中必须配置HWADDR这一属性,不然就会报出LSB加载错误,使得网络的配置失败.解决办法也很简单,就是将对应的网卡地址进行添加或修改. 首先,使用ip addr

PXE+kicstart+Vsftpd/NFS/HTTP无人值守批量网络安装

一.DHCP-Server上的配置1)设置网卡eth0的IP地址[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]DEVICE=eth0BOOTPROTO=noneHWADDR=00:0c:29:a3:1e:a3ONBOOT=yesNETMASK=255.255.255.0IPADDR=192.168.10

Centos7中PXE自动化安装服务器

首先修改作为DHCP服务器的网卡配置信息 [[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens192 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPADDR=15.1.1.1 NETMASK=255.255.255.0 NAME=ens192 DEVICE=ens192 O

CentOS7中网络配置详解

一.前言 本来准备写一些网络配置工具的使用,后来想了想(其实还是为了偷懒),网上关于nmcli工具的使用文章不多,所以写一下CentOS7中的nmcli工具的简单使用和CentOS7中一些网络属性配置的相关变化. 二.CentOS7网络方面的变化 很多朋友刚接触到CentOS7的时候最不习惯的就是它的网卡命名方式了,不过不习惯终究还是得去了解它,毕竟一个运维人员要时刻保持先进性,我们一起来了解CentOS7中网卡的命名方式吧! 网卡命名机制 如果 Firmware或BIOS主板上集成设备的索引信

在CentOS7中配置网路成组(Network Team)

之前写了一篇网络成组的文章,使用的是nmtui图形界面配置,但JSON字符串输入很繁琐.因此,建议nmcli进行配置.另外,在CentOS7中推荐网络成组的方式替代以往的网卡绑定,对于具体的操作在红帽子的白皮书中已经有详细的论述,具体可以参看https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/index.html 使用nmcli工具进行配置 1. 创建网络成组

详解CentOS 7中PXE高效批量网络装机与kickstart无人值守技术

PXE高效批量网络装机 服务器的批量部署 规模化:同时装配多台服务器 自动化:安装系统.配置各种服务 远程实现:不需要光盘.U盘等安装介质 关于PXE网络 PXE 预启动执行环境,在操作系统之前运行 可用于远程安装,构建无盘工作站 服务端 运行DHCP服务,用来分配地址.定位引导程序 DHCP 自动分配IP地址 定位引导文件 运行TFTP服务器,提供引导程序下载 TFTP 简单文件传输协议 使用UDP协议 端口号69号 优点:高效率 缺点:容量小 用于存放:引导程序pxelinux.0(sysl

自动化无人值守网络装机(PXE网络装机)

自动化无人值守网络装机(PXE网络装机) 在IP地址为192.168.4.5主机上配置pxe机,实现对客户端的自动化网络装机,并在给客户端装机后自动分配IP地址.主机名,并自动创建一个管理员的账户:admin和对应密码:123456. 在192.168.4.5主机上配置: [[email protected]桌面]# mkdir  /nfsdir [[email protected]/]# mount  /dev/cdrom  /nfsdir //光盘挂载目录,也可是其他目录,但要和生成ks文件

PXE网络无人值守装机

装的主机: 原理和概念: 1.1 什么是PXE  严格来说,PXE 并不是一种安装方式,而是一种引导的方式.进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client.PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动.协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PX