分类: LINUX
2009-12-01 19:50:08
通过PXE技术无人值守批量安装Linux
(version 1.0)
适用条件:能够安排1~4个小时的测试时间;安装的系统版本相同;建议有7台以上才采用此方法。
本文档以淘宝服务器安装过程为实例
系统镜像:CentOS-5.3-x86-64bit-bin-DVD.ISO
需要用到下列rpm包和kickstart文件,rpm包全都在系统镜像里能找到。
dhcp-3.0.5-13.el5.x86_64.rpm
tftp-server-0.42-3.1.el5.centos.x86_64.rpm
xinetd-2.3.14-10.el5.x86_64.rpm
vsftpd-2.0.5-12.el5.x86_64.rpm或nfs-utils-1.0.9-33.el5.x86_64.rpm
目 录
四、附录(服务器安装过程PXE环境配置文件)...................................................... 7
五、把DHCP获得的IP地址写到静态文件里面.............................................................. 10
第一步:安装DHCP:
[root@localhost ~]#rpm –ivh dhcp-3.0.5-13.el5.x86_64.rpm
第二步:在dhcpd.conf文件中的subnet{}中,添加下面两行:
filename "pxelinux.0";
next-server 192.168.1.2;
第一步:安装tftp-server包:
[root@localhost CentOS]#rpm –ivh tftp-server-0.42-3.1.el5.centos.x86_64.rpm
第二步:找到pxelinux.0并拷贝到/tftpboot
[root@localhost ~]# updatedb
[root@localhost ~]# locate pxelinux.0
[root@localhost ~]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot
第三步:创建default文件
[root@localhost ~]# cat /tftpboot/pxelinux.cfg/default
default linux autoinstall
label linux autoinstall
kernel vmlinuz
append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks=ftp://192.168.1.2/pub/ks.cfg noipv6
第四步:拷贝vmlinuz和initrd.img到/tftpboot
[root@localhost ~]#cp /media/cdrom/images/pxeboot/vmlinuz /tftpboot
[root@localhost ~]#cp /media/cdrom/images/pxeboot/initrd.img /tftpboot
第一步:安装VSFTP
[root@localhost CentOS]#rpm -ivh vsftpd-2.0.5-12.el5.x86_64.rpm
第二步:拷贝系统镜像文件到FTP
[root@localhost ~]# cp -r /media/cdrom/* /var/ftp/pub
[root@localhost ~]#cp anaconda-ks.cfg /var/ftp/pub/ks.cfg
[root@localhost ~]#chmod o+r /var/ftp/pub/ks.cfg
ks.cfg文件可参照附录4.3修改。
1.5 重启dhcpd,xinetd,vsftpd等服务,关闭防火墙,所有客户机从网卡启动,开始无人值守安装。
第一步:安装DHCP:
[root@localhost CentOS]#rpm –ivh dhcp-3.0.5-13.el5.x86_64.rpm
第二步:在dhcpd.conf文件中的subnet{}中,添加下面两行,其中192.168.1.2是TFTP服务器的IP地址(DHCP、FTP、NFS等服务均可以搭建在不同的服务器上)。
filename "pxelinux.0";
next-server 192.168.1.2;
DHCP的详细配置可参照附录4.1。
第一步:安装tftp-server包,此包依赖于xinetd包。
[root@localhost CentOS]#rpm –ivh tftp-server-0.42-3.1.el5.centos.x86_64.rpm
第二步:找到pxelinux.0并拷贝到/tftpboot
[root@localhost ~]# updatedb //升级数据库
[root@localhost ~]# locate pxelinux.0 //查找pxelinux.0文件位置,pxelinux.0是linux里的bootstrap文件,定义向服务器请求linux内核,根文件系统之类的参数
[root@localhost ~]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot
第三步:创建default文件,default是控制pxelinux.0的配置文件。client会按照default的配置来执行pxelinux.0文件。
简化版:
[root@localhost ~]# cat /tftpboot/pxelinux.cfg/default
default linux autoinstall
label linux autoinstall
kernel vmlinuz
append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks=ftp://192.168.1.2/pub/ks.cfg noipv6
详细版(将会出现我们所熟悉的安装前的选择界面):
default autoinstall #设置默认的安装方式,对应下面的设置
prompt 1
timeout 100
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label local
localboot 0
label install
kernel vmlinuz
append initrd=initrd.img
label text
kernel vmlinuz
append initrd=initrd.img text
label ks #这种方式可指定KS文件
kernel vmlinuz
append ks initrd=initrd.img
label memtest86 #内存检测
kernel memtest
append -
label autoinstall #无人值守安装,淘宝的50台服务器批量安装采用的方式
kernel vmlinuz
append ks=ftp://192.168.1.2/pub/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=16384 nofb noipv6
[root@localhost ~]#chmod o+r /var/ftp/pub/ks.cfg //将权限从600改为604
第四步:拷贝vmlinuz和initrd.img等文件到/tftpboot
[root@localhost ~]#cp /media/cdrom/images/pxeboot/vmlinuz /tftpboot //内核镜像
[root@localhost ~]#cp /media/cdrom/images/pxeboot/initrd.img /tftpboot //根文件系统
[root@localhost ~]#cp /media/cdrom/isolinux/isolinux/*.msg /tftpboot
[root@localhost ~]#cp /media/cdrom/isolinux/isolinux/splash.lss /tftpboot //安装时的第一个图形界面。
第五步:改写boot.msg(根据实际情况,对应default文件中的项)。
#vi /tftpboot/boot.msg
^L
^Xsplash.lss
- To install or upgrade in graphical mode, press the ^O01
- To install or upgrade in text mode, type: ^O01text
- To KS file specified, type: ^O01ks
- To auto install, type: ^O01autoinstall
- Use the function keys listed below for more information.
^O0f[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]^O07
第六步:开启TFTP
[root@localhost ~]#chkconfig tftp on
第一步:安装VSFTP
[root@localhost CentOS]#rpm -ivh vsftpd-2.0.5-12.el5.x86_64.rpm
第二步:拷贝系统镜像文件到FTP
[root@localhost ~]# cp -r /media/cdrom/* /var/ftp/pub
FTP和NFS采用其中一种即可。
[root@localhost ~]#cat /etc/export
/var/ftp/pub 192.168.1.0/24(ro)
然后把安装镜像(不用解压,直接拷贝iso文件)拷贝到/var/ftp/pub
方法一:直接从/root下面拷贝,因为系统安装好之后会自动生成/root/anaconda-ks.cfg
[root@localhost ~]#cp anaconda-ks.cfg /var/ftp/pub/ks.cfg
方法二:利用system-config-kickstart工具在图形界面下配置,在任何一台rhel或centos上面均可运行,配置后保存。需要安装kickstart及依赖包,
[root@localhost ~]#yum install "*kickstart*"
[root@localhost ~]#system-config-kickstart
方法三:直接手工创建,可参照下面的示例。
示例:
#platform=x86, AMD64, or Intel EM64T
# System authorization information
auth --useshadow --enablemd5
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Use text mode install 采用文本方式,安装过程更快,更稳定
text
#管理员在2009年8月13日编辑了该文章文章。