CentOS7下PXE Kickstart DHCP TFTP HTTP无人值守安装系统(杰哥教你Linux)

CentOS7下PXE Kickstart DHCP TFTP HTTP无人值守安装系统(杰哥教你Linux)

首页冒险解谜杰哥不要更新时间:2024-09-23

一、概述

(一)什么是PXE

PXE(Pre boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP ( trivial file transfer protocol )或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机,内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

​ 严格来说,PXE并不是一种安装方式 ,而是种引导方式。 进行PXE安装的必要条件是在要安装的计算机中必须包含个PXE支持的网卡(NIC), 即网卡中必须要有PXE Client。PXE 协议可以使计算机通过网络启动。此协议分为Client端和Server端,而PXE Client则在网卡的ROM中。当计算机引导时,BIOS把PXE Client调入内存中执行,然后由PXE Client将放置在远端的文件通过网络下载到本地运行。运行PXE协议需要设置DHCP服务器和TFTP服务器。DHCP服务器会给PXE Client (将要安装系统的主机)分配个IP地址,由于是给PXE Client分配IP地址,所以在配置DHCP服务器时需要增加相应的PXE设置。此外,在PXE Client的ROM中,已经存在了TFTP Client,那么它就可以通过TFTP协议到TFTP Server上下载所需的文件了。

(二)PXE工作过程

​ 1.PXE方便通过网络大批量地操作系统的部署。PXE client当按下电源键选择从PXE网络启动,通过广播找到DHCP服务器索取IP;

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

​ 3.PXE Client向本网络中的TFTP服务器索取pxelinux.0文件;

​ 4.PXE Client取得pxelinux.0文件后之执行该文件;

​ 5.根据nxelinux 0的执行结里诵过TFTP服务器加载内核和文件系统;

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

(三)环境准备说明

​ PXE服务器:centos7基于virtualbox的虚拟机

​ IP:10.0.2.15

#可通过如下命令查询DNS [root@localhost ~]# cat /etc/resolv.conf

​ DNS:114.114.114.114

​ 在tftp服务器上要首先由PXE的安装信息,配置服务及安装软件包如下;DHCP;tftp;http;sysliinux(通过yum安装)

[root@localhost ~]# yum install dhcp tftp tftp-server syslinux httpd -y #生成ks.cfg文件需要system-config-kickstart工具 [root@localhost ~]# yum install system-config-kickstart -y #此工具依赖于X Windows,所以需安装X Windows和Desktop [root@localhost ~]# yum groupinstall "X Windows System" [root@localhost ~]# yum groupinstall Desktop #重启系统 [root@localhost ~]# reboot

二、基于httpd搭建本地安装源

(一)挂载光盘

#挂载CentOS7光盘 [root@localhost ~]# mkdir /media/cdrom [root@localhost ~]# mount /dev/cdrom /media/cdrom [root@localhost ~]# mkdir -pv /var/www/html/centos/7/x86_64 #绑定挂载到http默认目录下 [root@localhost ~]#mount --bind /media/cdrom /var/www/html/centos/7/x86_64

(二)kickstart ks.cfg配置文件

[root@localhost ~]# cd /var/www/html;mkdir ks [root@localhost ~]# vim anaconda-ks.cfg #version=DEVEL # System authorization information auth --enableshadow --passalgo=sha512 # Use CDROM installation media #cdrom # Install OS instead of upgrade install # Use network installation url --url=http://(自己的IP地址,如:10.0.2.15)/centos/7/x86_64 # Use graphical install graphical # Run the Setup Agent on first boot firstboot --enable #ignoredisk --only-use=sda # Keyboard layouts keyboard --vckeymap=cn --xlayouts='cn' # System language lang zh_CN.UTF-8 # Network information network --bootproto=dhcp --device=enp0s3 --onboot=off --ipv6=auto network --hostname=localhost.pkey.cn # Root password rootpw --iscrypted $1$lSeSXuy.$7HmGY9vVxEGEGB98qTUuv1 # System timezone timezone Asia/Shanghai --isUtc # System bootloader configuration bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda autopart --type=lvm # Partition clearing information clearpart --none --initlabel %packages @^minimal @core kexec-tools vim wget httpd %end ?don com_redhat_kdump --enable --reserve-mb='auto' %end selinux --disabled #禁用selinux reboot #安装完重启系统

(三)配置启动

[root@localhost ~]# systemctl start httpd [root@localhost ~]# systemctl enable httpd

(四)查看当前服务状态

[root@localhost ~]# systemctl status httpd.service

三、配置DHCP服务

(一)配置dhcp服务

dhcp配置文件在/etc/dhcp/目录下,默认的配置文件没有,但我们可以在帮助文件中找到模板示例文件加以修改,帮助文件的位置为 /usr/share/doc/dhcp*/dhcpd.conf.sample,也可以自己新建一个dhcpd.conf文件,写入

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page option domain-name "pkey.cn"; option domain-name-servers 114.114.114.114; #写入网关 default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 10.0.2.0 netmask 255.255.255.0 { range dynamic-bootp 10.0.2.110 10.0.2.120; option routers 10.0.2.1; next-server 10.0.2.254; #tftp server也是本机,可以分开 filename "pxelinux.0"; #引导文件 }

(二)启动与查看

[root@localhost ~]# systemctl start dhcpd [root@localhost ~]# systemctl enable dhcpd #查看监听情况 [root@localhost ~]# ss -tunl Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port udp UNCONN 0 0 *:67 *:* udp UNCONN 0 0 *:68 *:* udp UNCONN 0 0 127.0.0.1:323 *:* udp UNCONN 0 0 :::69 :::*

(三)查看当前服务状态

[root@localhost ~]# systemctl status httpd.service

四、配置tftp服务

安装好tftp-server软件包后 默认的数据根目录是/var/lib/tftpboot/ 无须修改,只需要复制一些软件引导文件进来即可

1、相关文件准备

##引导文件 [root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #内核文件 [root@localhost ~]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot #引导菜单 [root@localhost ~]# cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot #制件引导默认文件 [root@localhost ~]# mkdir -pv /var/lib/tftpboot/pxelinux.cfg #在/var/lib/tftpboot/pxelinux.cfg目录下 [root@localhost pxelinux.cfg]# cat default default menu.c32 prompt 5 timeout 30 MENU TITLE CentOS 7 PXE Menu LABEL linux MENU LABEL Install CentOS 7 x86_64 KERNEL vmlinuz APPEND initrd=initrd.img inst.repo=http://(自己的IP)/centos/7/x86_64 ks=http://(自己的IP)/ks/ks.cfg

2、启动配置开机自启

[root@localhost]# systemctl enable tftp [root@localhost]# systemctl start tftp

3、tftp测试

#查看/var/lib/tftpboot/的目录文件结构 [root@localhost tftpboot]# tree -L 2 . ├── chain.c32 ├── initrd.img ├── mboot.c32 ├── memdisk ├── menu.c32 ├── pxelinux.0 ├── pxelinux.cfg │ └── default └── vmlinuz 1 directory, 8 files

[root@localhost ~]# cd /var/lib/tpm [root@localhost tpm]# pwd;ls /var/lib/tpm [root@localhost tpm]# tftp 10.0.2.15 tftp> get vmlinuz tftp> quit [root@localhost tpm]# pwd;ls /var/lib/tpm vmlinuz

五、PEX无人值守安装测试

(一)修改virtualbox网络

管理–>全局设定–>网络–>”仅主机(Host-Only)网络” –>双击vboxnet0 –>把virtualbox自带的仅主机网络的DHCP服务关掉

(二)新建虚拟机

和用cdrom安装虚拟的唯一区别是不用挂载镜像,只需要修改新的虚拟机的网络类型为”仅主机(Host-Only)网络”

开机–>按F12选择LAN启动

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved