PXE网络安装Linux
在大规模的Linux应用环境中,如Web群集、分布式计算等,服务器往往没有光驱设备,在这时如何为数十乃至上百台服务器快速安装系统,这是作为Linux运维所要考虑的问题。在这里将通过PXE技术的网络安装方法并结合Kickstart配置实现无人值守自动安装。
1.1 部署PXE远程安装服务
PXE是Intel公司开发的网络引导技术,基于C/S模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统。搭建PXE远程服务器必须要满足以下几个条件:
◆ 客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。当下的计算机硬件基本都可以支持。
◆ 网络中有一台DHCP服务器为客户机自动分配地址、指定引导文件位置。
◆ 服务器通过TFTP提供 镜像文件的下载
1.2 搭建PXE远程安装服务器 本服务器搭建基于Centos6.3系统,和RHEL6是相通的,配置过程也同样适用在RHEL6中。在本例中,远程服务器集成了YUM源、TFTP服务器、DHCP服务器,可以向客户机发送PXE引导程序、Linux内核、启动菜单等数据,以及提供安装文件。
1)准备安装源 安装源一般通过HTTP、FTP协议来发布,也可支持NFS协议。在此以FTP协议的形式来发布。
在安装了vsftpd软件后,在ftp服务器的根目录下创建存放安装文件的目录centos,并将光盘中所有文件复制到centos目录下,之后启动vsftpd服务。到此安装源就准备完成。
复制完成后,使用service 命令启动vsftpd服务即可。 2) 安装并启动TFTP服务
在安装后修改tftp服务器配置时很简单,只需将“disable = yes”改为 “disable=no”即可。tftp服务默认由xinetd超级服务进行管理,修改完成后重启xinetd服务。
编辑完成后使用service命令重启xinetd服务。
1.3 准备Linux内核、初始化镜像文件
在PXE网络安装时需要的Linux内核、初始化镜像文件可以从系统光盘中获得,名字分别为vmlinuz和initrd.img,位置在images/pxeboot中,找到上述文件后将其复制到tftp服务的根目录下。
1.4 准备PXE引导程序、启动菜单文件
用于PXE网络安装的引导程序为pxelinux.0,由软件包syslinux提供。在安装好软件包后将文件pxelinux.0也复制到tftp服务器的根目录下。
启动菜单是用来指导客户机的引导过程,包括如何调用内核、如何加载初始化镜像。默认的启动菜单文件名为default,应放在tftp根目录的pxelinux.cfg目录下,具体配置可参考以下操作手动建立。
上述配置中定义了三个引导入口,分别是图形安装(默认)、文本安装、救援模式,其中,prompt用来设置是否等待用户选择,label用来定义并分隔启动项,kernel和append用来定义引导参数。引导入口的个数及内容根据需要自行定义。
1.5 安装并配置DHCP服务
现在PXE客户端通常是尚未安装系统的裸机,因此为了连接服务器并下载相关引导文件,需要预先搭建DHCP服务器来分配地址并告知引导文件位置。在此演示中,PXE服务器同时也是DHCP服务器。IP地址为192.168.2.200,因此DHCP服务器需分配的地址池为192.168.2.0/24
在上图配置文件中,可看到和一般DHCP服务器不同的是,配置文件中增加了 next-server和filename这两行记录,分别用来指定TFTP服务器的地址以及PXE引导程序的文件名。
1.6 验证PXE网络安装
在搭建好PXE服务器后,就可以使用客户机进行安装测试了,对于裸机不需要做额外设置,对于已有系统的主机,需要修改BIOS设置,将启动方式修改为“NETWORK”或“LAN”。
如果服务器配置正确,网络连接等都没问题的话,客户机启动后将会分配到IP地址,然后从TFTP服务器获取引导程序pxelinux.0,并根据引导菜单选择进入启动入口。如下图所示:
在提示字串boot后可直接按Enter或执行auto将会进入图形安装入口,执行“Linux text”则进入文本安装入口,执行“linux rescue”则进入救援模式,然后依次选择安装语言,键盘类型,之后会提示用户指定安装介质,在本例中选择“URL”
确定后会提示配置TCP/IP,在此地址从DHCP服务器自动获取,接下来指定Centos6安装源的路径即可。配置如图所示。
确认后将自动通过服务器下载安装文件并进入图形安装界面。到此,就意味着PXE网络安装基本就没有问题了,后续安装过程和使用光盘安装类似,在这里就不再阐述。
1.7 实现Kickstart无人值守安装
在上述操作中通过PXE技术远程安装了CentOs6系统,安装方式不再受限于光盘、硬盘等设备,大大提高了安装系统的灵活性。但是在安装期间仍然需要手动选择设置,所以在进行批量装机时则显得非常不方便。所以在此基础上我们再来看如何实现无人值守自动安装,通过使用Kickstart工具配置安装应答文件,自动完成安装过程的各种设置,从而无需手动干预 ,提高网络装机效率。
1)准备安装应答文件
在CentOs6中安装system-config-kickstart工具后,即可通过图形化工具来配置安装应答文件。用户如果在应答文件配置熟悉,也可直接编辑系统安装后自动创建的应答文件(/root/anaconda-ks.cfg),根据需要适当修改即可。下图是运行kickstart工具的配置界面:
在基本配置中主要设定系统的安装语言,时区设置,根口令设置。
在安装方法中应正确指定安装源。
分区信息中根据系统需要设定正确的分区规划。
在网络配置选项中,添加一个网络设备“eth0”,并将网络类型设为“DHCP”
在防火墙选项中,可以选择禁用SELinux、禁用防火墙。
在软件包选择选项中,根据实际需要选择要安装的软件包分组。如选择安装“基本”、“开发工具”等
安装脚本
在“预安装脚本”、“安装后脚本”对话框中,可以分别添加在安装前、安装后自动运行的可执行语句。例如可以使客户端在安装后自动设置YUM仓库,不过需要注意的是,应确保所编写的脚本能够正确执行,以免安装失败。
其他设置
如无特殊需要,在“引导装载程序选项”、“验证”等选项对话框中,保持默认设置就可以。
保存自动应答文件
在设置完kickstart后,单击Kickstart程序的“文件”选项中的“保存”,将生成的应答文件保存在指定位置,如/root/ks.cfg。以后如需修改应答文件,可以使用Kickstart程序调整或者直接使用vi编辑此文件即可。
实现批量自动装机
有了自动安装的应答文件以后,只要放到PXE安装服务器的FTP目录下,并适当修改引导菜单,就可以实现基于网络的批量自动装机了。
1)启用自动应答文件
在PXE远程安装服务器中,将生成的应答文件复制到/var/ftp/centos/目录下,使客户机能够通过 ftp://192.168.2.200/centos/ks.cfg访问,之后编辑引导菜单文件default,添加ks引导参数以指定ks.cfg应答文件的URL路径。
注释:当客户机通过网络引导启动后,就会读取引导菜单文件default中的内容。其中default文件中的 default选项是指用户在没有任何操作的情况下将会默认选择的安装方式。prompt 选项可设置为0或1.当选项为1时,将会出现boot:选项,用户可选择安装方式。当prompt选项为0是表示不等待用户控制,直接安装default指定的去安装。
2)验证无人值守安装
在启动客户机后,将自动下载ks.cfg应答文件,然后根据其中的设置安装系统,而无需手工干预,这样就可以同时为多台客户机安装系统了。