基于 PXE 实现大规模部署 Linux 服务器
引言 传统安装 Linux 服务器的方 式 使用光盘引导安装 使用软盘引导 , 其它介质进行安装 通过硬盘进行引导安装 ( 一般用于多系统环境 )‏ 其它 (FTP,HTTP,NFS.....)‏
实际工作环境中可能遇到的情况 光驱损坏或没有安装光盘 软件测试人员需要搭建大量测试环境 为大量非专业人员安装 Linux 工作站 在集群环境下 , 部署大量相同配置的服务器
实际工作环境中可能遇到的情况
解决方案概要 设置一个启动服务器 (TFTP) 和安装服务器 (NFS) ,客户机通过网络引导 (PXE,DHCP) 进入安装程序,安装程序自动访问服务器上的安装介质完成安装。
方案示意图
方案中涉及到的技术 PXE DHCP TFTP Kickstart NFS
准备 环境需求 一台 PC 机作为安装服务器 待安装的机器,网卡需要有 PXE 引导支持 基本的网络连通环境 Redhat 的 ISO 安装映像
实现步骤 一,配置引导服务器 二,配置安装服务器 三, Kickstart 配置 四,客户机使用网卡启动完成安装
配置引导服务器 所需文件 dhcp-3.0.5-7.el5.i386.rpm  tftp-server-0.42-3.1.el5.i386.rpm CentOS-5.1-i386-bin-1of6.iso
配置引导服务器 1 ,配置 DHCP 服务器 , 同时设置 PXE 引导模块 #vi /etc/dhcpd.conf  ddns-update-style interim; allow booting;           // 此处定义网络引导 allow bootp; subnet 10.0.0.0 netmask 255.255.255.0 {     option routers                  10.0.0.10;     option subnet-mask              255.255.255.0;     filename “/linux-install/pxelinux.0”;               // 指定 pxe 引导配置文件路径 , 其绝对路径在 /tftpboot     range dynamic-bootp 10.0.0.128 10.0.0.254;     next-server      10.0.0.10;  // 指定启动引导文件存放的主机地址 }
配置引导服务器 2 ,配置 TFTP 服务器 复制光盘中的引导文件 #mkdir /tftpboot/linux-install/ #mount –t iso9660 –o loop Centos-5.1-i386-bin-1of6.iso /mnt  #cp /mnt/images/pxeboot/initrd.img /tftpboot/linux-install/ #cp /mnt/images/pxeboot/vmlinuz /tftpboot/linux-install/ #cp /mnt/isolinux/*.msg /tftpboot/linux-install/ #mkdir /tftpboot/linux-install/pxelinux.cfg   #cp /mnt/isolinux/isolinux.cfg /tftpboot/linux-install/pxelinux.cfg/default 复制启动映像文件 #cp /usr/lib/syslinux/pxelinux.0 /tftpboot/linux-install/
配置安装服务器 以上完成了引导服务器的安装,现在可以选择一种方式进行系统的安装步骤,可选的协议有 HTTP , FTP , NFS 三种,以下以 NFS 为例 . 1 ,利用之前挂载的 Centos 光盘映像,设置 NFS 输出共享目录 #vi /etc/exports /mnt            *(ro,sync)   配置完毕,启动相关服务 #service dhcpd start #chkconfig tftp on #service xinetd start #service nfs start
Kickstart 配置 Kickstart Redhat 公司提供的一个减少安装过程中人机交互的工具 Ks.cfg 文件
Kickstart 配置 图形化界面的 kickstart 配置工具
Kickstart 配置 1, 编辑 ks.cfg 文件之后,使用 nfs 输出共享 #cp ks.cfg /ks/ks.cfg #vi /etc/export /ks *(ro,sync)‏ 2, 修改引导文件参数实现完全自动安装 #vi /tftpboot/linux-install/pxelinux.cfg/default default linux ks=nfs:<server ip>:<path to ks.cfg on nfs> #prompt 1 #timeout 600
Kickstart 配置 其它获取 ks.cfg 文件的方法 1 , /root/anaconda-ks.cfg 文件
客户端引导安装  客户端进入 bios 设置首选网络启动
客户端引导安装 客户端开机直接进入引导
客户端开机引导测试 完成安装
谢  谢

基于PXE实现部署Linux服务器