这是我参与更文挑战的第 15 天,活动详情查看:更文挑战linux
一名致力于在技术道路上的终身学习者、实践者、分享者,一位忙起来又偶尔偷懒的原创博主,一个偶尔无聊又偶尔幽默的少年。vim
欢迎各位掘友们微信搜索「杰哥的IT之旅」关注!服务器
严格来讲,PXE 并非一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必需要有 PXE Client。markdown
PXE (Pre-boot Execution Environment)协议使计算机能够经过网络启动。协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件经过网络下载到本地运行。网络
运行 PXE 协议须要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,因为是给 PXE client 分配 IP 地址,因此在配置 DHCP 服务器时须要增长相应的 PXE 设置。app
此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 经过 TFTP 协议到 TFTP Server 上下载所需的文件。dom
KickStart 是一种无人职守安装方式,KickStart 的工做原理是经过记录典型的安装过程当中所需人工干预填写的各类参数,并生成一个名为 ks.cfg 的文件;socket
在其后的安装过程当中(不仅局限于生成 KickStart 安装文件的机器)当出现要求填写参数的状况时,安装程序会首先去查找 KickStart 生成的文件。工具
当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才须要安装者手工干预。
这样,若是 KickStart 文件涵盖了安装过程当中出现的全部须要填写的参数时,安装者彻底能够只告诉安装程序从何处取 ks.cfg 文件,而后去忙本身的事情。等安装完毕,安装程序会根据 ks.cfg 中设置的重启选项来重启系统,并结束安装。
在实际的操做中每每将 TFTP Server,DHCP Server 部署在一台机器上,统称服务端。
PXE(Pre-boot Execution Environment,预启动执行环境)结合 Kickstart 配置实现无人值守自动安装
服务端IP:192.168.200.254
# service iptables stop
# setenforce 0
复制代码
# mount /dev/cdrom /mnt/
# rpm -i /mnt/Packages/vsftpd-2.2.2-11.el6_4.1.x86_64.rpm
# umount /dev/cdrom
# mkdir /var/ftp/rhel6
# mount /dev/cdrom /var/ftp/rhel6/
# service vsftpd restart
复制代码
# vim /etc/yum.repos.d/yum.repo
[base] //仓库类别
name=Red Hat Enterprise Linux 6 //仓库名称
baseurl=ftp://192.168.3.10/rhel6 //URL访问路径
gpgcheck=0 //验证软件包的签名
复制代码
TFTP 服务由 tftp-server 软件包提供,默认经过 xinetd 超级服务进行管理,须要将 /etc/xinetd.d/tftp 中的 disable=yes 修改成 disable=no。并重启 xinetd 服务。
# yum -y install tftp-server
# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
# service xinetd restart
复制代码
用于 PXE 网络安装的 Linux 内核,初始化镜像文件可从光盘中找到分别为 vmlinuz 和 initrd.img 位于 images/pxeboot 下,将两个文件复制到 tftp 服务的根目录下。
# cd /var/ftp/rhel6/images/pxeboot/
# cp vmlinuz initrd.img /var/lib/tftpboot/
复制代码
用于 PXE 网络安装的引导程序为 pxelinux.0 由软件包 syslinux 提供,安装软件包后将文件复制到 tftp 服务的根目录下。
# yum -y install syslinux
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
复制代码
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像,默认的启动菜单为 default,应放置 tftp 根目录的 pxelinux.cfg 子目录中。
# mkdir /var/lib/tftpboot/pxelinux.cfg
# cat /var/lib/tftpboot/pxelinux.cfg/default
default auto // 默认入口名称
prompt 1 // 1:表示等待用户控制
label auto
kernel vmlinuz
append initrd=initrd.img devfs=nomount ramdisk_size=8192
复制代码
定义了三个引导入口,分别是图型安装(默认),文本安装,救援模式
无人值守安装只须要一个入口
用来为客户机(裸机)自动分配地址并指定引导文件位置
# yum -y install dhcp
# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"?y
# vim /etc/dhcp/dhcpd.conf
ddns-update-style none;
next-server 192.168.200.254; # TFTP 服务器地址
filename "pxelinux.0"; # PXE 引导程序文件名
subnet 192.168.200.0 netmask 255.255.255.0 {
option routers 192.168.200.254;
option subnet-mask 255.255.255.0;
option domain-name "crushlinux.com";
option domain-name-servers 202.106.0.20, 8.8.8.8;
range 192.168.200.100 192.168.200.200;
default-lease-time 21600;
max-lease-time 43200;
}
# service dhcpd start
复制代码
使用 kickstart 工具配置安装应答文件,自动安装安装过程当中的各类设置,无需手动干预,提升装机效率
# yum -y install system-config-kickstart
# system-config-kickstart
复制代码
在生产环境中
预安装脚本:可用户安装加载一些外置卡的驱动,例如RAID卡
安装后脚本:可用于设置一些初始化配置
# ll /var/ftp/pub/ks.cfg
-rw-r--r--. 1 root root 1204 12月 19 00:31 /var/ftp/pub/ks.cfg
复制代码
# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0
label auto
kernel vmlinuz
append ks=ftp://192.168.200.254/pub/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=8192
复制代码
原创不易,若是你以为这篇文章对你有点用的话,麻烦你为本文点个赞、评论或转发一下,由于这将是我输出更多优质文章的动力,感谢!
咱们下期再见!