码迷,mamicode.com
首页 > 其他好文 > 详细

PXE网络装机

时间:2015-04-22 20:24:09      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!