标签:
PXE网络装机
简介
在大规模的Linux应用环境中,如Web群集、分布式计算等,服务器往往并不配备光驱设备,这种情况下如何为数十乃至上百台服务器裸机快速安装系统?传统的USB光驱、移动硬盘等安装方法显然已经力所难及。使用基于PXE(Pre-bootExecutionEnvironment,预启动执行环境)技术的网络装机方法,并结合Kickstart配置实现无人值守自动安装。
1. 部署PXE远程安装服务
PXE是由Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。若要搭建PXE网络体系,必须满足以下几个前提条件:
? 客户机的网卡支持PXE协议(集成B00TROM芯片),且主板支持网络引导。
? 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置。
? 服务器通过TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜橡文件的下载。
其中,第一个条件实际上是硬件要求,目前几乎所有的服务器和大多数PC都能够提供此支持,只需在BIOS设置中允许从Network或LAN启动即可。
1.1搭建PXE远程安装服务器
本例中的PXE远程安装服务区集成了CentOS6.4安装源、TFTP服务、DHCP服务、能够向客户机裸机发送PXE引导程序、Linux内核、启动菜单等数据,以及提供安装文件。
1) 准备CentOS6.4安装源
[root@sky ~]# mount /dev/cdrom /mnt <==插入光盘然后挂载
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@sky ~]# yum -y install vsftpd <==安装FTP服务
[root@sky ~]# mkdir /var/ftp/centos6.4 <==创建系统镜像目录
[root@sky ~]# cp -rf /mnt/* /var/ftp/centos6.4 <==将/mnt目录下的所有文件都复制到FTP共享/var/ftp/centos6.4目录中
[root@sky ~]# service vsftpd restart <=启动FTP服务
2) 安装并启用TFTP服务
[root@sky ~]# yum -y install tftp-server
[root@sky ~]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp //TFTP采用UDP传输协议
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot //指定TFTP根目录
disable = no <==将“yes”改成“no”,启用TFTP服务
per_source = 11
cps = 100 2
flags = IPv4
}
[root@sky ~]# service xinetd start
[root@sky ~]# service iptables stop <==关闭防火墙
3)准备Linux内核、初始化镜像文件
用于PXE网络安装的Linux内核、初始化镜像文件可以从CentOS6.4系统光盘获得,分别为vmlinuz和initrd.img,位于文件夹images/pxeboot中。找到这两个文件并将其复制到tftp服务的根目录下。
[root@sky ~]# cd /mnt/images/pxeboot/
[root@sky pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/
4)启动PXE引导程序,启动菜单文件
用于PXE网络安装的引导程序为pxelinux.0,由软件包syslinux提供。安装好软件包syslinux,然后将文件pxelinux.0也复制到tftp服务的根目录下。
[root@sky ~]# yum -y install syslinux
[root@sky ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
启动菜单用来指导客户机的安装过程,包括如何调用内核,如何加载初始化镜像。默认启动菜单文件为default,应放置在tftp根目录的pxelinux.cfg子目录中,典型的启动菜单配置可以参考以下操作手动建立。
[root@sky ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@sky ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto <==指定默认入口名称
prompt 1 <==1表示等待用户控制
label auto <==图形安装(默认)
kernel vmlinuz
append initrd=initrd.img devfs=nomount ramdisk_size=8192
label linux text <==文本安装
kernel vmlinuz
append text initrd=initrd.img devfs=nomount ramdisk_size=8192
label linux rescue <==救援模式
kernel vmlinuz
append rescue initrd=initrd.img devfs=nomount ramdisk_size=8192
5) 安装并启用DHCP服务
由于PXE客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好DHCP服务来自动分配地址并告知引导文件位置。若PXE服务器的IP地址为192.168.1.10,DHCP地址池为192.168.1.10——192.168.1.200,则可以参照以下操作来搭建DHCP服务器。
[root@sky ~]# yum -y install dhcp
[root@sky ~]# vim /etc/dhcp/dhcpd.conf
ddns-update-style interim; <==表示DHCP服务器和DNS服务器的动态信息更新模式
ignore client-updates; <==忽略客户端更新
subnet 192.168.1.0 netmask 255.255.255.0 { <==意思是我所分配的ip地址所在的网段为192.168.1.0 子网掩码为255.255.255.0
range 192.168.1.100 192.168.1.200; <==租用IP地址的范围
option domain-name-servers ns.example.org;
option domain-name "example.org";
option routers 192.168.1.10; <==路由器地址,这里是当前DHCP机器的IP地址
option subnet-mask 255.255.255.0; <==子网掩码
default-lease-time 600; <==默认租约时间
max-lease-time 7200; <==最大租约时间
next-server 192.168.1.10; <==指定TFTP服务器地址
filename "pxelinux.0"; <==指定PXE引导程序文件名
}
[root@sky dhcp]# vim /etc/rc.d/init.d/dhcpd
user=dhcpd <==改为"root"用户
group=dhcpd <==改为"root"用户
#如果DHCP服务器有多快网络,修改监听网卡为eth0
[root@www ~]# vim /etc/sysconfig/dhcpd
DHCPDARGS="eth0"
[root@sky ~]# service dhcpd start
6)验证PXE网络安装
搭建好PXE远程安装服务器以后,就可以用客户机进行安装测试了。对于新购买的服务器或PC裸机,一般不需要额外设置;若要为已有系统的主机重装系统,则可能需要修改BIOS设置,将“Boot First”设置为“NETWORK”或“LAN”,然后重启主机。如果服务器配置正确,网络连接、PXE支持都没有问题,则客户机重新启动后将自动配置IP地址,然后从TFTP服务器中获取引导程序pxelinux.0,并根据引导菜单配置提示用户指定启动入口,如下:
在提示字串“boot:”后直接按Enter键(或执行“auto”),将会进入默认的图形安装入口;若执行“linux text”则进入文本安装入口;若执行“linux rescue”则进入救援模式。依次选择语言,键盘类型,然后会提示用户指定安装介质,使用“URL”,如图:
提示配置TCP/IP时,IPv4设置可接受默认的DHCP获取方式,而IPv6支持应该取消,接下来在"URL Setup"对话框中指CentOS安装源的URL路径:
确认后自动通过网络下载安装文件,并进入图形安装程序,若能成功到这一步,那就意味着PXE网络安装基本没有问题了。
2. 实现Kickstart无人值守安装
1.准备安装应答文件
在Linux系统中安装system-config-kickstart工具以后,即可通过图形化向导工具来配置安装应答文件。
[root@sky ~]# yum -y install system-config-kickstart*
1)配置安装应答参数
通过桌面菜单【应用程序】——【系统工具】——【kickstart】即可打开kickstart配置程序,在kickstart配置程序中,可以针对基本信息、安装方法、引导选项、分区信息、网络配置等各项安装设置进行指定。
2)基本信息及安装方法
【基本信息】将默认语言设为“英语“、时区设为“Asia/shanghai”,将根口令设为“qwe.123“并勾选“安装后重新引导系统“。在“安装方法”对话框中,应正确指定CettOS安装源,若有用户验证信息也需一并指定。
3)分区信息
在【分区信息】对话框中,需正确规划分区方案,例如可划分一个500MB的/boot分区,4GB的home分区、2GB的交换分区将到余空间划分给根分区,如果磁盘空间充足可依照实际情况灵活调整。
4)在【网络配置】对话框中,添加一个网络设备”eth0",将网络类型设为“DHCP”。
在【防火墙配置】对话框中,可以选择禁用SElinux、禁用防火墙。
5)软件包选择
在【软件包选择】对话框中,根据实际需要选择要安装的软件包分组。例如可选择基本”万维网服务器”、“X窗口系统”、“字体”、“桌面”及“开发工具”、“中文支持”等。
6)安装脚本
在【预安装脚本】,“安装后脚本”对话框中,可以分别添加在安装前,安装后自动运行的可执行语句。此项设置使服务器的自动化配置变得更加容易,例如可以使客户机在完成安装后自动设置YM仓库,需要注意的是,应确保所编写的代码能够正常执行,以免安装失败。
若没有特殊要求,在“引导装载程序”、“验证”、“显示配置、“预安装脚本”、“安装后脚本”等对话框中只需要保持默认设置就可以了。
2. 保存自动应答文件
单击kickstart配置程序的【文件】——【保存】菜单,指定目标文件夹、文件名,将配置好的应答参数保存为文本文件,例如/root/ks.cfg。以后若要修改此应答配置,可以在kickstart配置程序中打开进行调整,或者直接用vim等文本编辑工具修改。
[root@sky ~]# grep -v ^# /root/ks.cfg
firewall --disabled
install
url --url="ftp://192.168.1.10/yum"
rootpw --iscrypted $1$pP2myXOo$.2yjXunbzayrU05LRFp.P.
auth --useshadow --passalgo=sha512
graphical
firstboot --disable
keyboard us
lang en_US
selinux --disabled
logging --level=info
reboot
timezone Asia/Shanghai
network --bootproto=dhcp --device=eth0 --onboot=on
bootloader --location=mbr
zerombr
clearpart --all
part /boot --fstype="ext4" --size=500
part /home --fstype="ext4" --size=4096
part / --fstype="ext4" --grow --size=1
3.实现批量自动装机
有了自动安装的应答文件以后,只要放置到PXE安装服务器的FTP目录中,并适当修改引导菜单,就可以实现基于网络的批量自动装机了。
1)启动自动应答文件
在PXE远程安装服务器中,将建立的应答文件复制到/var/ftp/centos6.4目录下,使客户机能够通过ftp://192.168.1.10/centos6.4/ks.cfg访问。然后编辑引导菜单文件default,添加ks引导参数以指定ks.cfg应答文件的URL路径。
[root@sky ~]# cp /root/ks.cfg /var/ftp/centos6.4/ks.cfg
[root@sky ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@sky ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0
label auto
kernel vmlinuz
append ks=ftp://192.168.1.10/centos6.4/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=8192
2)验证无人值守安装
启动自动应答安装以后,每次当客户机以PXE方式引导时,将自动下载ks.cfg应答配置文件,然后根据其中的设置安装CentOS6.4系统,而无需手工干预。
PXE网络装机
标签:
原文地址:http://www.cnblogs.com/starryisky/p/4448294.html