PXE装机

       
    对服务器进行批量部署,实现规模化、自动化、远程化。减少人工压力

一:基本思路
1:所需安装包
dhcp
tftp-server
ftp
system-config-kickstart
pxelinux
dns(选用,最大好处是可以实现负载均衡:作多个ftp源,将它们域名设置成一样)

2:详解
dhcp
为客户端提供ip、dns、其中要在配置语句中指出下一个tftp服务器IP,以及网卡启动文件 
如next-server ...;
filename "pxelinux.0";

tftp-server
客户端获取IP的同时,会根据得到tftp服务器IP,并进入/var/lib/tftpboot/目录中读取内核等信息,从而引导系统。

ftp
提供系统安装包源

system-config-kickstart
制作应答文件的图形化工具,让客户端读取该文件从而实现自动分区等操作,实现安装系统完全自动化。要保存在/var/ftp下

pxelinux
安装该包,主要是为了提取pxelinux.0这个文件,其位于:/usr/share/syslinux/pxelinux.0


3.目录、文件结构
/var/lib/tftpboot/
initrd.img   pxelinux.0   vmlinux  pxelinux.cfg/default
注:pxelinux.cfg为手动创建目录,default来源于isolinux.cfg

/var/ftp
ks.cfg      iso/rhel6


4.客户机启动后的基本过程
    1)自动获取IP地址
    2)下载 pxelinux.0 引导文件
    3)读取 pxelinux.cfg/default 配置文件
    4)在 boot: 后输入要安装的系统标签(比如 linux)进行选择,直接回车或超时过均选择默认
    5)根据选择结果执行相应的引导文件:vmlinuz、initrd
    6)加载安装向导程序,进入交互式安装过程。。。
        !!!! 指定采用URL源,自动获取IP地址
        !!!! 将安装源设置为  ftp://192.168.4.5/rhel6
        !!!! 此后的安装设置、分区、软件包定制等过程与光盘安装相同
        ―― 至此,说明 PXE 引导及配置已成功,可中止后续手动安装的验证过程
        ―― 等待后续的 kickstart 无人值守安装测试



二、配置过程

1:为服务器配置固定IP,关闭防火墙,SElinux.
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth1
HWADDR=00:0C:29:81:F7:73
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=192.168.4.5
NETMASK=255.255.255.0

service network restart
chkconfig network on                   
service iptables stop
chkconfig iptables off
setenforce  0
2:配置yum库
[rhel]
name=rhel
baseurl=file:///misc/cd
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
3:为服务器配置DHCP

option domain-name "tarena.com";
option domain-name-servers 192.168.4.5;  //dns ip
default-lease-time 2000;  //默认租约时间
max-lease-time 5000;   //最大租约时间
subnet 192.168.4.0 netmask 255.255.255.0 {  //网段,子网
range 192.168.4.1 192.168.4.100;  //地址池
option routers 192.168.4.254;   //网关
next-server 192.168.4.5;  //tftp引导服务器ip
filename "pxelinux.0"   //网卡引导文件名
}
service dhcpd restart
chkcofnig dhcpd on

4:安装FTP
yum -y install vsftpd
service vsftpd restart
chkconfig vsftpd on
umount /dev/cdrom
mkdir /var/ftp/rhel6
mount /dev/cdrom /var/ftp/rhel6
(可以将光盘内资料拷到rhel6目录下,并适当修改yum库位置)

5:安装TFTP
yum -y install tftp-server tftp
chkconfig tftp on
service xinetd restart
netstat -anptu | grep xinetd


6:生成网卡启动文件
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

7:cp内核和初始化镜像
cd /var/ftp/rhel6/images/pxeboot/
cp vmlinuz initrd.img /var/lib/tftpboot/

8:准备应答文件
yum -y install system-config-kickstart
system-config-kickstart
(在root目录中打开以a开头的文件,在界面中选择装机步骤,并保存到/var/ftp/)

9:为PXE安装配置启动菜单
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /var/ftp/rhel6/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default
default linux6.4
prompt 1
timeout 300
label linux6.4
  kernel vmlinuz
  append ks=ftp://192.168.4.5/ks.cfg initrd=initrd.img



多操作系统可选择安装


ls  -F  /var/lib/tftpboot/
centos6/    pxelinux.0  pxelinux.cfg/  rhel5/
[root@pxesvr ~]# ls  -F  /var/lib/tftpboot/rhel5/
initrd.img  vmlinuz*

[root@pxesvr ~]# ls  -F  /var/lib/tftpboot/centos6/
initrd.img  vmlinuz*

cp  /usr/share/syslinux/vesamenu.c32  /var/lib/tftpboot/


vim  /var/lib/tftpboot/pxelinux.cfg/default
default   rhel5                    #//默认从哪个标签引导系统
timeout 300                    #//等待倒计时(单位:1/10秒)

UI  vesamenu.c32                  #//启用图形PXE菜单
menu background splash.jpg          #//指定PXE菜单的背景图片
menu title Welcome to PXE Installation Server !      #//指定PXE菜单的标题

label rhel5                   #//定义名为rhel5的标签
        menu label Install RH^EL 5.9 ( Kickstart )      #//显示的菜单文字
        kernel  rhel5/vmlinuz              #//选择此标签时,加载 RHEL 5.10 的引导内核
        append  ks=http://192.168.4.6/pxe/ks-el5.cfg  initrd=rhel5/initrd.img

label centos6                   #//定义名为centos6的标签
        menu label Install ^CentOS 6.5 ( Kickstart )      #//显示的菜单文字
        kernel  centos6/vmlinuz          #//选择此标签时,加载 CentOS 6.5 的引导内核
        append  ks=http://192.168.4.6/pxe/ks-cos6.cfg  initrd=centos6/initrd.img

label rescue
        menu label ^Rescue Installed System
        kernel  rhel5/vmlinuz
        append initrd=rhel5/initrd.img rescue          #//进入rescue救援模式

label local
        menu label Boot From ^Local Drive
        localboot  1                  #//从本地硬盘启动



问题总结
1.如果开机获取IP后,停留在ntfs不动,请检查69端口是否被监听,解决方法:chkconfig tftp on


2.若想采用自动为客户机改名,及提供iso源做到负载均衡,需要配置DNS服务器,提供参考源如下:
主配置文件
/var/named/chroot/etc/named.conf
options {
directory "/var/named";
};
zone "pxe.com" IN {
type master;
file "pxe.com.zone";
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.arpa";

};

局域正向配置文件
/var/named/chroot/var/named/pxe.com.zone
$TTL 86400
@ IN SOA pxe.com. 18701327225.sina.cn. (
01
1D
1D
1D
1D
)
@ IN NS server.pxe.com
server IN A 192.168.1.254
www IN A 192.168.1.254
www IN A 192.168.1.253
* IN A 192.168.1.254
$GENERATE 1-200 pc$ IN A 192.168.1.$

局域反向配置文件
/var/named/chroot/var/named/192.168.1.arpa"
@ SOA pxe.com. 18701327225.sina.cn. (
1
1D
1D
1D
1D
)
@ IN NS www.pxe.com.
$GENERATE 1-200 $ IN PTR pc$.
                                  







你可能感兴趣的:(pxe装机)