Linux基于PXE实现系统全自动无人值守安装
前言
在生产环境中,我们时常会需要在多台客户端主机或服务器安装操作系统,如果每一台都去手动安装,费时费力,显然是不现实的。那么,如何高效的完成此类工作呢?文将讲解如何实现Linux系统的全自动无人值守安装。
提供PXE服务所需安装包
dhcp:动态主机配置协议,给客户端提供ip地址
tftp-server:tftp服务器端,提供系统安装所需文件
xinetd:tftp服务超级守护进程,用于唤醒tftp服务
httpd:基于http服务提供安装源
sysLinux:提供pxeLinux.0文件,此文件用于引导系统,相当于bootloader
安装所需安装包
dhcp服务配置
dhcp服务的配置文件默认是/etc/dhcp/dhcpd.conf,但此文件默认是没任何配置的,此服务提供了一个参考文件/usr/share/doc/dhcp*/dhcpd.conf.sample,复制此文件覆盖原配置文件,直接修改即可。
#option domain-name "scholar.com"; #分配dns域 #option domain-name-servers 172.16.10.10; #分配dns地址 #default-lease-time 600; #默认租约时长 #max-lease-time 7200; #最大租约时长 #以上为dhcp全局配置,如果仅为实现PXE可默认 subnet 172.16.0.0 netmask 255.255.0.0 { #提供dhcp服务的网段 range 172.16.10.20 172.16.10.100; #地址池 option routers 172.16.0.1; #网关 next-server 172.16.10.10; #tftp服务器地址 filename "pxeLinux.0" #PXE引导文件 } #以下仅为介绍dhcp特殊配置,无需要可不配置 #host winxp { #设置保留专用地址 # hardware ethernet 00:0c:29:50:29:02; #保留主机物理地址 # fixed-address 172.16.100.2; #保留地址,非地址池内地址,优先分配 #}
dhcp服务配置完成,测试配置无语法错误后,启动服务并设置开机自启
dhcp工作在upd的67端口,启动服务后,可查看67端口是否开启
tftp服务配置
xinetd是tftp的超级守护进程,即tftp是xinetd的子服务,修改配置文件,确保tftp服务没有被禁用。
[root@scholar ~]# 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 #确保此项为no per_source = 11 cps = 100 2 flags = IPv4 }
修改完配置文件,启动xinetd进程并设置tftp服务开机自启
tftp工作在udp的69端口,启动服务后,可查看69端口是否开启
注意:请将防火请关闭或设置相关规则允许访问69端口,不然将无法访问tftp服务。
提供引导内核等文件
从挂载的光盘中复制PXE所需文件到tftp工作目录下(默认为/var/lib/tftpboot)
提供PXE工作环境
复制pxeLinux.0文件(由sysLinux包提供,需提前安装)到tftp工作目录
提供安装源
可提供安装源的服务有很多,例如:http、ftp、nfs等,我们就基于http服务实现此操作。在http服务默认的工作目录里创建一个专为安装源所使用目录,并将之与已挂载的光盘目录绑定。
启动http服务并设置开机自启,http服务工作在tcp的80端口,启动服务后,可查看80端口是否开启。
提供kickstart文件
kickstart文件可以自己创建(需安装system-config-kickstart.noarch工具),也可以复制系统文件直接修改。这里我们就不演示创建过程了,直接复制文件修改(此文件为/root/anaconda-ks.cfg)
#修改或添加以下两项,目标指向安装源 url --url=http://172.16.10.10/RHEL6.6 repo --name="Redhat" --baseurl=http://172.16.10.10/RHEL6.6 --cost=100
为了启动时能够加载kickstart文件,还需要修改/var/lib/tftpboot/pxeLinux.cfg/default文件,添加ks文件的位置。
[root@scholar ~]# vim /var/lib/tftpboot/pxeLinux.cfg/default label Linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append initrd=initrd.img ks=http://172.16.10.10/ks.cfg #指向ks文件
启动测试
将待装系统的主机设置为网卡启动
开机开始引导
引导成功开始安装各种包
安装成功,查看IP地址
The end
好了,以上便是基于PXE实现系统全自动无人值守安装的整个过程,如果在引导时出现无法下载kickstart文件的情况,请检查网络内有无dhcp冲突,或seLinux是否关闭。仅为个人学习整理,如有错漏,大神勿喷~~~