码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-09-17 18:54:23      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:rom   使用   for   ifcfg   查看   镜像   网络配置文件   --   systemctl   

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

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的网络就配置好了,配置完之后重新启动,让其生效

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# vim ifcfg-ens36
[root@localhost network-scripts]# service network restart

技术图片
技术图片
技术图片

·

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

[root@localhost network-scripts]# ifconfig

技术图片

·

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

[root@localhost 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"确认覆盖

[root@localhost network-scripts]# cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

技术图片

·

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

[root@localhost 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配置文件之后就可以安装引导程序文件

[root@localhost network-scripts]# yum install syslinux -y

技术图片

·

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

·

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

[root@localhost network-scripts]# yum install tftp-server -y

技术图片

·

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

[root@localhost ~]# rpm -ql tftp-server

技术图片

·

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

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

技术图片

·

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

[root@localhost ~]# vim /etc/xinetd.d/tftp 

技术图片

·

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

[root@localhost ~]# yum install vsftpd -y

技术图片

·

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

[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# mount /dev/sr0 /var/ftp/centos7

技术图片

·

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

[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/

技术图片

·

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

[root@localhost 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、所有的文件都配置好了之后就剩下最后一步了,关闭防火墙、增强性安全功能,然后启动所有服务

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

技术图片


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

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

[root@localhost ~]# 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"中,如果不复制的话安装的时候选组件就会失败

[root@localhost ftp]# vim anaconda-ks.cfg 
[root@localhost ftp]# vim ks.cfg

技术图片

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

[root@localhost ~]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default 

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

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

标签:rom   使用   for   ifcfg   查看   镜像   网络配置文件   --   systemctl   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!