一,PXE

1.原理和概念:

预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(硬盘)或本地已安装的操作系统。

服务端:运行DHCP服务,用来分配地址,定位引导程序

​ 运行TFTP服务,提供引导程序下载

客户端:网卡支持PXE协议

​ 主板支持网络引导

优点:

  • 规模化:同时装配多台服务器
  • 自动化:安装系统,配置各种服务
  • 远程实现:不需要光盘,U盘等安装介质

2.PXE服务的流程

PXE服务器和客户机的工作过程:

1.PXE客户机发出DHCP请求,向DHCP服务器申请IP地址。 
 
2.DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0,默认在TFTP共享目录/var/lib/tftpboot/下 3.PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。 4.TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。 5.PXE客户机通过网络来启动到系统安装主界面。 6.PXE客户机向文件共享服务器(ftp、http、nfs等)发起获取centos或windows系统安装文件的请求。 7.文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。 8.PXE客户机进入到安装提示向导界面,用户需要手动来完成系统安装的操作 

3.配置

前提条件:
●客户机的网卡支持 PXE 协议(集成 BOOTROM 芯片),且主板支持网络引导。
●网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。
●服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。
1)配置双网卡 一个作用是dhcp,一个是使用网络源安装环境包
2)DHCP部署     
3)tftp-server 服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。
4)syslinux  //用来提供pxe的引导程序 5)xinetd //用来托管tftp 6)vsftpd //用来放置安装镜像,通过ftp访问镜像安装 7)kickstart //用来无人值守安装 在服务器上部署一个 YUM 软件仓库。 [root@localhost ~]# mkdir -p /var/ftp/centos7 [root@localhost ~]# mount /dev/cdrom /mnt [root@localhost ~]# cp -rf /mnt/* /var/ftp/centos7 [root@localhost ~]# yum -y install vsftpd [root@localhost ~]# systemctl start vsftpd [root@localhost ~]# systemctl enable vsftpd 安装并启用 TFTP 服务 [root@localhost ~]# yum -y install tftp-server [root@localhost ~]# vi /etc/xinetd.d/tftp service tftp { ####省略部分信息 protocol = udp ###TFTP 采用 UDP 传输协议 server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot ###指定 TFTP 根目录 disable = no ####省略部分信息 [root@localhost ~]# systemctl start tftp [root@localhost ~]# systemctl enable tftp 
准备 Linux 内核、初始化镜像文件
[root@localhost ~]#   cd /mnt/images/pxeboot/          ####切换到挂载目录/mntimages/pxeboot/   

[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/  ###两个文件并将其复制到 tftp 服务的根目录下

准备 PXE 引导程序 pxelinux.0由软件包 syslinux 提供 [root@localhost ~]# yum -y install syslinux [root@localhost pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 
安装并启用 DHCP 服务
由于 PXE 客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好 DHCP 服务来自动分配地址并告知引导文件位置。如 PXE 服务器的 IP 地址为 20.0.0.254, DHCP 地址池为 20.0.0.100~20.0.0.200 [root@localhost ~]# yum -y install dhcp [root@localhost ~]# vi /etc/dhcp/dhcpd.conf subnet 20.0.0.0 netmask 255.255.255.0 { option routers 20.0.0.2; ###这是网关 option subnet-mask 255.255.255.0; option domain-name "bdqn.com"; option domain-name-servers 20.0.0.254,202.106.0.20; default-lease-time 21600; max-lease-time 43200; range 20.0.0.100 20.0.0.200; next-server 20.0.0.21; #####指定 TFTP 服务器的地址 filename "pxelinux.0"; ####指定 PXE 引导程序的文件名 } [root@localhost ~]# systemctl start dhcpd [root@localhost ~]# systemctl enable dhcpd 配置文件中增加了 netx-server 和filename 这两行记录,分别用来指定 TFTP 服务器的地址和 PXE 引导程序的文件名。 
配置启动菜单文件
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下

[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default auto prompt 1 label auto kernel vmlinuz append initrd=initrd.img method=ftp://20.0.0.21/centos7 label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://20.0.0.21/centos7 label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://20.0.0.21/centos7 上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。其中, prompt 用来设置是否等待用户选择; label 用来定义并分隔启动项; kernel 和 append用来定义引导参数。引导入口的个数及内容根据需要自行定义。 
验证 PXE 网络安装
搭建好 PXE 远程安装服务器以后,就可以使用客户机进行安装测试了。对于PC 裸机,一般不需要额外设置;
若要为已有系统的主机重装系统,则可能需要修改BIOS 设置,将“Boot First”设为“NETWORK”或“LAN”,然后重启主机;若使用 VMware创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时会报错。
如果服务器配置正确,网络连接、 PXE 支持等都没有问题,则客户机重启后将自动配置 IP 地址,然后从 TFTP 服务器中获取引导程序 pxelinux.0,并根据引导菜单配置提示用户指定启动入口,

在提示字串“boot:”后直接按 Enter 键(或执行“auto”命令),将会进入默认的图形
安装入口;若执行“linux text”命令,则进入文本安装入口;若执行“linux rescue”命
令,则进入救援模式。
直接按 Enter 键确认后将自动通过网络下载安装文件,并进入图形安装程序界面

二,Kickstart 无人值守安装

背景:通过 PXE 技术远程安装 CentOS 7 系统的方法,安装介质不再受限于光盘、
移动硬盘等设备,大大提高了系统安装的灵活性。然而,安装期间仍需要手动选择语言、键盘类型、指定安装源等一系列交互操作,当需要批量安装时非常不方便。

通过使用 Kickstart 工具配置安装应答文件,自动完成安装过程中的各种设置,从而无须手动干预,提高网络装机效率。

可通过图形化向导工具来配置安装应答文件。如果用户对自动应答文件的配置比较熟悉,也可以直接编辑 CentOS7 安装后自动创建的应答文件(/root/anaconda-ks.cfg)

最小化安装可以通过命令安装图形界面以此来使用Kickstart 配置程序

[root@localhost ~]#  yum -y groupinstall 'GNOME Desktop'		###安装图形界面工具
[root@localhost ~]# systemctl set-default graphical.target ###图形界面启动 
安装应答文件
[root@localhost ~]# yum -y install  system-config-kickstart		###安装kickstart

配置安装应答参数
通过桌面菜单“应用程序”→“系统工具”→“Kickstart”即可打开“Kickstart 配
置程序”窗口。在“Kickstart 配置程序”窗口中,可以针对基本配置、安装方法、引导装载程序选项、分区信息、网络配置等各种安装设置进行指定

基本配置:
	默认语言:Chinese (P.R. of China)---中文(简体)
	键盘:U.S English
	时区:Asia/Shanghai
	Root密码:123456
	默认密码:123456
	勾选√:给root密码加密
高级配置:
	目标架构:X86、AMD64、活IntelEm64T
	勾选√:安装后重启
	不勾选:在文本模式中执行安装(默认为图形化模式)
	
安装方法:
	勾选√:执行全新安装

安装方法:
	勾选√:FTP  
	FTP服务器:ftp://20.0.0.21
	FTP目录:centos7
	
安装类型:
	勾选√:安装新引导装载程序
	
分区信息:
/boot  	 xfs 	是   	1024
/home  	xfs 	是 	4096
swap    	swap 	是 	2048
/	xfs	是	1

网络配置:
添加一个网络设备“ens33”,将网络类型设为“DHCP”

防火墙配置:
禁用 SELinux、禁用防火墙

使用解释程序:/bin/bash

安装后脚本的运行

mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
echo “[local] name=local baseurl=ftp://20.0.0.21/centos7 enabled=1 gpgcheck=0" > /etc/yum.repos.d/local.repo 配置好以后保存为ks.cfg文件,保存的路径为/var/ftp下 注意:软件包安装默认是禁用的,如果需要启用必须修改yum源配置文件,将[]里的内容改成development,立即生效 
软件包选择
如果需要安装软件包,可以根据需要将/root/anaconda-ks.cfg 的软件包安装脚本复制到 ks.cfg 文件中,只需要复制%packages 到%end 部分即可,在%packages 到%end 之间,包含以@开头的软件包列表,将不需要的软件名删除,剩下的就是系统会自动安装的软件包

最小化安装
####
%packages
@^minimal
%end
####

如果需要自己配置软件包,需要编辑ks.cfg文件
vim ks.cfg
添加至最后

%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@development
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-browser
@multimedia
@print-client
@x11
chrony

%end
添加 ks 引导参数至引导菜单文件
vi /var/lib/tftpboot/pxelinux.cfg/default 
default auto 
prompt 0    ##值为“0”时表示自动执行ks.cfg文件(无人值守)、为“1”时表示手动配置(有人值守 label auto kernel vmlinuz append initrd=initrd.img method=ftp://20.0.0.21/centos7 ks=ftp://20.0.0.21/ks.cfg 对ks进行优化 vi /var/lib/tftpboot/pxelinux.cfg/default default auto prompt 1 label auto kernel vmlinuz append initrd=initrd.img method=ftp://20.0.0.21/centos7 ks=ftp://20.0.0.21/ks.cfg label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://20.0.0.21/centos7 ks=ftp://20.0.0.21/ks.cfg label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://20.0.0.21/centos7 ks=ftp://20.0.0.21/ks.cfg 

最后通过新建虚拟机进行验证

原文地址:http://www.cnblogs.com/y0226/p/16806662.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性