首页 > 代码库 > 基于PXE实现操作系统的自动化安装

基于PXE实现操作系统的自动化安装

        在安装Linux系统时,常见的场景有使用光盘的方式来安装,在需要安装的计算机数量不多,且个性化定制安装的情况下,使用光盘来交互式的选择配置方式安装,是我们最常见的情况,当然使用光盘的方式也可以实现免交互的方式来实现自动安装,其方式是在安装开始前提供一份kickstart文件。

       基于光盘实现系统的自动化安装,我们需要向光盘的镜像文件中添加kickstart配置文件,而系统安装过程中需要用到的其他重要的文件有:在isolinux 目录下有isolinux.bin,isolinux.cfg,boot.cat,boot.msg,grub,vesamenu.c32,splash.jpg,有这些文件就可以实现系统安装前安装界面的显示工作,其中isolinux.bin程序类似于grub程序,它可以读取vesamenu.c32来显示系统安装的界面,并使用splash.jpg作为背景,而isolinux.cfg是它的配置文件,里面定义了系统安装时可以使用的参数以及安装界面的特性信息等。而boot.cat类似于grub程序的第一阶段,在某些情况下无法正常使用isolinux.bin程序时,那么这个程序会发挥作用,引导系统的安装。如果我们在isolinux.cfg配置文件中指定kickstart文件在光盘中的位置,就可以实现自动化光盘的安装,当然这个文件也要提前加到光盘的镜像文件中去。

        而很多情况下,当我们需要大批量的部署安装操作系统时,这种交互式的或者基于光盘的安装方式都不能满足我们的需求,安装的过程会很重复,效率很低,于是,我们可以基于网络安装的方式来自动化的安装系统,即基于PXE技术实现自动化安装。

        使用PXE技术自动安装操作系统与使用光盘的方式安装很多地方相似,前面提到的几个文件都依然需要,如,vesamenu.c32,,splash.jpg,boot.msg,isolinux.cfg,不过isolinux.cfg这个文件在基于PXE安装时,其名称要更改为default,而且要为其创建一个目录,这些文件与default文件所在的目录要在一个目录下,而vmlinuz和initrd.img文件比较特殊,由于其是基于PXE方式安装的,这2个文件不能使用光盘根目录下的isolinux目录内的文件,而是使用光盘根目录下的images目录下pxeboot目录中的vmlinuz和initrd.img,而isolinux.bin这个程序文件被pxelinux.0这个程序文件替代了,另外还需要提供kickstart文件,这个文件中定义了系统的安装源以及安装方式等,这个文件在我们使用网络安装时一般存放在提供yum仓库的主机中即可。基于PXE方式安装系统需要提供的服务有DHCP服务,为客户端主机分配IP地址,tftp服务,简单的说是为客户端主机提供上述的几个提供系统安装引导前的界面显示的,其中最重要的是pxelinux这个程序文件,还有就是我们系统安装过程中需要的yum源和kickstart文件。

        具体的操作方法如下:

        1、安装配置DHCP服务

# yum install -y dhcp

配置文件中几处需要定义的截图如下:域名,提供DHCP服务的主机IP地址,默认租期期限,最长租期

期限,提供服务的子网地址和地址池,tftp服务器的IP地址以及tftp服务器中提供的pxelinux.0文件。

wKioL1PZIbjDkrwBAACQZur9Fvc854.jpg

wKioL1PZIgiCyl2cAABBjujPdIw718.jpg

wKiom1PZIiLQ2hKkAACvGJamrxQ088.jpg

 

 

配置完成后检查语法错误:# service dhcpd configtest

 

然后重启服务,# service dhcpd  force-reload

 

        2、安装配置tftp服务

 

# yum install tftp tftp-server

 

# chkconfig tftp start

 

# service xinetd restart;tftp服务是由xinetd进程代为管理的,所以如果启动tftp监听的端口就需要重启

 

xinetd服务。

 

 

 

# netstat -unl;擦看tftp监听的69号端口是否启动

 

 

wKiom1PZJQDDhCliAAE50bW-lMY937.jpg

 

 

基于PXE安装操作系统需要的pxelinux.0这个文件是通过安装sysliux这个RPM包生成的,所以还需要安

 

安装这个RPM包# yum install -y syslinux,然后复制所有我们需要用的文件至tftp提供下载的目录中

 

# mount -r /dev/cdrom /media/cdrom

 

# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

 

# mkdir /var/lib/tftpboot/prelinux.cfg

 

# cp //media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

 

# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot

 

# cp /media/cdrom/isolinux/{vesamenu.c32,splash.jpg} /var/lib/tftpboot

 

准备好的几个文件如下:

 

 

wKioL1PZK12SfyC0AAB4Hau2JXg207.jpg

 

   

 

     3、安装配置http服务

 

# yum install  -y httpd

 

# service httpd start

 

# chkconfig httpd on

 

准备yum源和kickstart文件,yum源可以由我们的安装镜像文件提供,将镜像文件挂载至/var/www/html

 

下面的目录中,比如

 

# mkdir /var/www/html/centos6

 

# mount  -r  /dev/cdrom /var/www/html/centos6

 

准备kickstart文件,这个文件可以由kickstart配置工具生成,这个工作是system-config-kickstart;

 

然后复制该文件至/var/www/html目录中

 

# cp /root/anaconda-ks.cfg  /var/www/html/centos6.cfg

 

 

wKioL1PZL5ew3NSZAADx_8Zf710977.jpg

 

 

这样我们就实现了基于PXE方式的系统自动化安装。