PXE高效装机(附加脚本)
发布时间:2020-12-14 00:24:37 所属栏目:Linux 来源:网络整理
导读:一、PXE网络装机 1.概述:PXE是intel公司开发的网络引导技术,C/S架构; 2.条件: 服务器端: 服务 作用 dhcp服务 为客户机提供网络参数,及指定pxe服务器地址 tftp-server服务 为客户端发送vmlinuz内核,initrd.img启动文件,pxelinux相关的文件 vsftpd服务
一、PXE网络装机
1.概述:PXE是intel公司开发的网络引导技术,C/S架构; 2.条件: 服务器端:
客户端:网卡支持PXE协议,且主板支持网络引导; 4.装机流程: a、设置客户机的BIOS从PXE启动 b、客户机向网络中请求DHCP服务器获取动态IP c、DHCP服务器下发IP、引导文件位置、TFTP服务器地址 d、客户机请求TFTP服务器获取引导文件 e、执行引导程序 f、请求TFTP服务器获取配置文件(pxelinux.cfg) g、配置文件包含vmlinux、initrd.img、ks文件位置信息 h、根据配置文件,用户请求TFTP服务器获取linux内核(vmlinux) i、请求TFTP服务器获取linux根文件系统(initrd.img) j、客户机启动linux内核 k、内核挂载initrd.img,并执行挂载各种各样的模块 l、如果设置KS文件,装机步骤自动选择,否则需手动选择 m、装机完成 二.实验过程 (一)安装dhcp服务以及配置 /etc/dhcp/dhcpd.conf [[email?protected] network-scripts]# yum install dhcp -y 安装dhcp服务 [[email?protected] network-scripts]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 复制为dhcp的配置文件 cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y [[email?protected] network-scripts]# vim /etc/dhcp/dhcpd.conf 编辑dhcp配置文件 subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.20 192.168.100.340; option routers 192.168.100.100; option domain-name-servers 114.114.114.114; next-server 192.168.100.100;//指向tftp服务器地址 filename "pxelinux.0";指定引导文件 } (二)安装syslinux,tftp服务 [[email?protected] network-scripts]# yum install tftp-server -y //安装tftp服务 [[email?protected] network-scripts]#sed -i ‘/disable/s/yes/no/g‘ /etc/xinetd.d/tftp //修改配置文件 2.安装syslinux,并且把引导文件pxelinux.0复制到 /var/lib/tftpboot 目录下 [email?protected] network-scripts]# yum install syslinux -y //安装syslinux [[email?protected] network-scripts]#find /usr/share/syslinux/ -name "pxelinux.0" -exec cp -fp {} /var/lib/tftpboot ; //把pxelinux.0 文件复制到/var/lib/tftpboot 目录下 (三)安装vsftp服务(安装之前先将centos7镜像文件连接到光盘),将压缩内核和初始化文件复制到TFTP站点 [[email?protected] tftpboot]# yum install vsftpd -y //安装vsftp服务 mkdir /var/ftp/centos7 //创建centos7目录 mount /dev/sr0 /var/ftp/centos7 //把镜像挂载到centos7下面 find /var/ftp/centos7/images/pxeboot -name "initrd.img" -exec cp -fp {} /var/lib/tftpboot ; find /var/ftp/centos7/images/pxeboot -name "vmlinuz" -exec cp -fp {} /var/lib/tftpboot ; (四)编辑启动菜单default配置文件,关闭防火墙并开启三个服务 [[email?protected] pxeboot]# cd /var/lib/tftpboot/ 切换到tftp站点 [[email?protected] tftpboot]# mkdir pxelinux.cfg 创建配置文件目录 [[email?protected] tftpboot]# ls initrd.img pxelinux.0 pxelinux.cfg vmlinuz [[email?protected] tftpboot]# cd pxelinux.cfg/ [[email?protected] pxelinux.cfg]# vim default 编辑default配置文件 [[email?protected] pxelinux.cfg]# systemctl stop firewalld.service 关闭防火墙 [[email?protected] pxelinux.cfg]# setenforce 0 [[email?protected] pxelinux.cfg]# systemctl start dhcpd 启动三个服务 [[email?protected] pxelinux.cfg]# systemctl start tftp [[email?protected] pxelinux.cfg]# systemctl start vsftpd defualt配置文件如下 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 三.脚本 #!/bin/bash #--------------------------- #by jiji date:9-10 - #pxe高效装机 - #--------------------------- #配置dhcp配置文件 dhcpexp(){ echo -e " subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.10 192.168.100.20; option routers 192.168.100.100; option domain-name-servers 114.114.114.114; next-server 192.168.100.100; filename "pxelinux.0" ; }" >>/etc/dhcp/dhcpd.conf } #安装dhcp rpm -q dhcp if [ $? -eq 0 ];then dhcpexp else yum -y install dhcp cp -fpr /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf dhcpexp fi #安装tftp和修改配置文件 rpm -q tftp-server if [ $? -ne 0 ];then yum -y install tftp-server sed -i ‘/disable/s/yes/no/g‘ /etc/xinetd.d/tftp else sed -i ‘/disable/s/yes/no/g‘ /etc/xinetd.d/tftp fi #安装syslinux rpm -q syslinux if [ $? -ne 0 ];then find /usr/share/syslinux/ -name "pxelinux.0" -exec cp -fp {} /var/lib/tftpboot ; else yum -y install syslinux find /usr/share/syslinux/ -name "pxelinux.0" -exec cp -fp {} /var/lib/tftpboot ; fi $安装ftp rpm -q vsftpd if [ $? -ne 0 ];then yum -y install vsftpd mkdir /var/ftp/centos7 mount /dev/sr0 /var/ftp/centos7 find /var/ftp/centos7/images/pxeboot -name "initrd.img" -exec cp -fp {} /var/lib/tftpboot ; find /var/ftp/centos7/images/pxeboot -name "vmlinuz" -exec cp -fp {} /var/lib/tftpboot ; else mkdir /var/ftp/centos7 mount /dev/sr0 /var/ftp/centos7 find /var/ftp/centos7/images/pxeboot -name "initrd.img" -exec cp -fp {} /var/lib/tftpboot ; find /var/ftp/centos7/images/pxeboot -name "vmlinuz" -exec cp -fp {} /var/lib/tftpboot ; fi #配置编辑default启动菜单 mkdir /var/lib/tftpboot/pxelinux.cfg cat>/var/lib/tftpboot/pxelinux.cfg/default <<-EOF 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 EOF #关闭防火墙启动服务 systemctl stop firewalld.service setenforce 0 systemctl start dhcpd systemctl restart dhcpd systemctl start tftp systemctl restart tftp systemctl start vsftpd systemctl restart vsftpd (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |