前言
PXE:工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统
当企业在同时需要安装多台服务器系统时,为了方便、快捷、标准化、减少人工重复劳动、就需要一个PXE(preboot execute environment预启动执行环境)服务器协助我们安装系统,PXE网络安装还可以减少光盘的使用而且环保何乐而不为。
PXE服务器环境:
Centos6.4:服务器操作系统
IP:192.168.100.1
DHCP:动态主机配置协议
TFTP:简单文件传输协议
HTTP:超文本传输协议
Syslinux:改变磁盘上的引导扇区
System-config-kickstart:图形页面配置系统安装脚本
1、DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:1.给内部网络或网络服务供应商自动分配IP地址,2.给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
yum install dhcp #安装dhcp rpm -ql dhcp #查看dhcp生成文件 cat /etc/dhcp/dhcpd.conf #查看dhcp配置文件
全新安装dhcp配置文件内容如下:
# # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.sample # see ‘man 5 dhcpd.conf‘ #
根据提示复制相关脚本
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf #复制脚本 vim /etc/dhcp/decpd.conf #打开配置文件,具体如下:
以option开头为分配给客户端信息,非option开头为定义ducp自身的工作特性
option domain-name "magedu.com"; #配置域名 option domain-name-servers 8.8.8.8; #配置DNS地址 default-lease-time 80000; #默认地址租约时间(秒为单位) max-lease-time 280000; #最大租约时间 log-facility local7; #dhcp日志 subnet 192.168.100.0 netmask 255.255.255.0 { #指定dhcp工作在那个网段和子网掩码 range 192.168.100.10 192.168.100.200; #指定可分配的ip段 option routers 192.168.100.1; #指定网关 next-server 192.168.100.1; #指定提供pxe服务地址 filename "pxelinux.0"; #指定pxe引导文件 }
检测配置文件和重启服务
service dhcpd configtest #检查配置文件语法 service dhcpd force-reload #重启脚本
2、TFTP
TFTP(Trivial File Transfer Protocol,简单文件传输协议)它基于UDP协议而实现,提供不复杂、开销不大的文件传输服务,端口号为69。
yum install tftp-server #安装tftp服务 chkconfig tftp on #开机自启动 service xinetd restart #tftp服务由xinetd进程代为监听,修改tftp配置需要重启xinetd服务 netstat -unlp |grep 69 #查看服务是否启动
3、Syslinux
安装syslinux的磁盘将改变磁盘上的引导扇区,syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化安装Linux的时间,并建立修护或其它特殊用途的启动盘
yum install syslinux #安装syslinux cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot #复制文件到tftp目录下
4、HTTP
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,由客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。
yum install httpd #安装http mkdir -pv /var/www/html/centos/6/x86_64 #创建目录 mount /dev/cdrom /media/cdrom #挂载目录 mount --bind /media/cdrom /var/www/html/centos/6/x86_64 #绑定目录 service httpd start #启动http netstat -tnlp |grep "httpd" #查看是否正常启动
5、提供引导文件
Pxelinux被客户端加载后会去tftp服务器找vmlinuz和ramdisk文件,该文件在安装光盘images/pxeboot中,需要把相关文件复制到tftp目录下
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ #复制内核ramdisk cp /media/cdrom/isolinux/{splash.jpg,vesamenu.c32} /var/lib/tftpboot #复制menu框架和背景图片 mkdir /var/lib/tftpboot/prelinux.cfg #创建独特目录pxe格式要求 cp /media/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #复制选项菜单文件
6、制作一个kickstart启动文件
可以使用图形界面创建kickstart文件
yum install system-config-kickstart #安装图形界面窗口 system-config-kickstart #启动图形界面
保存文件centos6.cfg(文件名称自定义但是必须.cfg结尾)
mv centos6.cfg /var/www/html/ #移动文件到/var/www/html目录下 vim /var/lib/tftpboot/pxelinux.cfg/default #添加ks=http://192.168.100.1/centos6.cfg如下:
7、设置客户端启动项
选择安装,即可以实现全自动安装操作系统。
以上便是PXE无人值守全自动安装整个过程,如有遗漏请赐教。谢谢!