不论在服务器还是在工作站,安装系统都是我们首要的任务。若按平常安装系统来说我们需要在安装过程中交互的完成系统参数的配置例如语言、键盘、分区.... 但是有些时候我们不能完成交互安装或者交互安装太麻烦【比如说IDC机房(服务器没有键盘鼠标)、安装大量的主机】,这时候就需要我们来非交互的安装系统。

 自动安装系统有两种方法:手动引导安装和pxe引导安装,下面我们来一一介绍(我们的环境是虚拟机里的linux enterprise 5.4系统)

一、手动引导安装

 这种方法就是把系统所需要的配置写进一个名为ks.cfg(当然文件名称也可自定)的文件,然后把这个文件交给anaconda(交互式的安装程序)来避免交互,剩下的就是引导安装。那我们怎样把ks.cfganaconda呢,当我们引导系统的时候会出现一个引导画面,其中有boot: ,在boot:后面填写ks.cfg文件的路径进行手动引导安装。而文件的路径又有不同,下面我们来具体说明:

 boot:

       linux ks=cdrom/目录/ks.cfg ks.cfg放在引导光盘上)

       linux ks=hd:sda2【分区】:目录/ks.cfg  ks.cfg放在第二块分区上)

       linux ks=usl  (服务器上文件ks.cfg的路径)

ftp://地址或名称/目录/ks.cfg (文件在ftp服务器上)

http://地址或名称/目录/ks.cfg (文件在http服务器上)  

 当然引导的方式也有好几种:光盘、U盘以及PXE引导,接下来我们就以光盘引导为例、以ftp为服务器安装多台主机为模型为大家做一下讲解:

 1、我们把linux系统所在主机做成ftp服务器,这样我们就可以同时为多台计算机安装系统。所以第一步先安装vsftpd的软件包。

 2、启动vsftp服务,并设为开机启动

 3、挂载光盘,并把光盘上的所有东西拷到访问ftp服务器的匿名根/var/ftp

 Linux 系统自动化安装 _kickstart

 4、如果我们在ks.cfg里指定所要安装主机的ip地址,那么多台主机势必会地址冲突,所以我们还需要把linux系统做成dhcp服务器。安装dhcp软件包,然后设置dhcp的配置文件/etc/dhcpd.conf

  用vim编辑配置文件,在底行模式下用r读取下边方框标记的文件,该文件是该服务配置的模板文件,我们只需要做一些修改就行了

 Linux 系统自动化安装 _安装系统_02

  修改后的文件

 Linux 系统自动化安装 _pxe_03


 然后启动服务并设置为开机启动

 Linux 系统自动化安装 _pxe_04


 5、在生成ks.cfg之前我们要先配置好yum的环境,这是因为要生成ks.cfg需要进入一个设置各种参数的界面,其中就有软件包的选择,我们想要在安装系统的主机上安装软件的话就需要yum的支持。这里我们利用本地yum,对/etc/yum.repos.d/rhel-debuginfo.repo进行yum环境的配置

 Linux 系统自动化安装 _安装系统_05

 6、安装kickstart

    查看有关软件,然后利用yum -install 来安装显示的第二个软件

 Linux 系统自动化安装 _pxe_06

 7、输入system-config-kickstart命令来运行名为system-config-kickstart的工具来生成ks.cfg文件,在出现配置窗口后进行下列配置

 (1)基本配置

 Linux 系统自动化安装 _linux_07

 (2)安装方法

     这里我们选择新的安装,安装方法是ftp服务器安装

 Linux 系统自动化安装 _安装系统_08

 Linux 系统自动化安装 _自动化_09


 (3boot loader选项

 Linux 系统自动化安装 _kickstart_10

 (4)分区选项

 Linux 系统自动化安装 _自动化_11

 (5)网络功能(选择DHCP动态获得ip

 Linux 系统自动化安装 _linux_12

 (6)身份验证

 Linux 系统自动化安装 _自动化_13

 (7)防火墙设置

 Linux 系统自动化安装 _安装系统_14

  (8)显示设置

 Linux 系统自动化安装 _pxe_15

 (9)软件包选择(根据需要增加)

 (10)生成ks.cfg文件

 Linux 系统自动化安装 _pxe_16

 8、为了避免交互,打开ks.cfg,在里面添加key --skip,跳过key值的添加

 9、制作引导光盘

 (1)把光盘上的引导镜像进行挂载

 Linux 系统自动化安装 _kickstart_17

  我们可以看到在/mnt/iso目录下有个名为isolinux的目录,当我们进入该目录可以看到里边有内核、驱动等一些系统必要文件

  (2)新建/tmp/iso目录作为引导光盘的根目录,再把/mnt/iso下的所有文件拷到其中

 Linux 系统自动化安装 _自动化_18

(3)/root/ks.cfg拷到/tmp/iso目录下

 (4)/tmp/iso打包成iso文件

 Linux 系统自动化安装 _安装系统_19


  从下图中可以看到一个名为myiso.iso的文件

 Linux 系统自动化安装 _自动化_20

 10、开始安装

1)首先把myiso.iso文件提取宿主机的桌面上

 (2)在虚拟机里新建一台主机,选择典型硬件、暂时不挂载光盘、操作系统为5系列。当到硬件的详细配置时,需要我们作出配置

 Linux 系统自动化安装 _kickstart_21



3)避免从虚拟机获得ip而不是dhcp服务器,所以要在虚拟机上把网卡1给卸掉

 Linux 系统自动化安装 _kickstart_22


4)然后打开电源,进入引导界面,如下图我们在boot:后面要输入ks.cfg的文件路径

 Linux 系统自动化安装 _安装系统_23

5)然后就进入安装界面,如下图所示,说明我们已经进入正常的安装了,当然你也可以在这段时间去喝点茶休息一下了!

 Linux 系统自动化安装 _pxe_24



 二、pxe网络引导安装

 Pxe网络引导安装可以说是实现真正意义上的无人值守安装,原理是:要安装的机器首先从网络上的DHCP服务器获得ip信息和tftp服务器的地址信息,而tftp服务器上放置有引导文件、内核和驱动。然后访问tftp服务器,通过引导文件来引导安装,并加载内核和驱动。当然这种安装方式同样需要一个ks.cfg的文件把参数传递给anaconda,这里只需要指明ftp服务器的ks.cfg的文件路径就行了,不需要手动指明路径,从而避免交互。

 1、挂载光盘,分别安装名为vsftpdhcp的软件包,启动服务并设置为开机启动

 Linux 系统自动化安装 _自动化_25

 2、按照kickstart的实训中的方法对dhcp服务配置文件做配置

 3,查看有关tftp的软件包,如下图,从图中标记处可以看出tftp服务依赖于超级守护进程

 Linux 系统自动化安装 _安装系统_26

 4、对服务配置文件/etc/xinetd..d/tftp进行修改

 Linux 系统自动化安装 _kickstart_27


service xinetd restart来启动守护进程


5、切换到tftp的匿名根目录/tftpboot,然后把驱动、内核和引导文件分别拷到这个目录下面

 Linux 系统自动化安装 _linux_28

  6、在/tftpboot目录下新建一个存放引导文件配置文件的目录pxelinux.cfg,然后把光盘下的配置文件拷到该目录并改名为default

 Linux 系统自动化安装 _自动化_29

 7、对default文件进行配置

 Linux 系统自动化安装 _linux_30


 8、为了让要安装的机器知道tftp的位置,还要配置dhcp的配置文件dhcpd.conf

 Linux 系统自动化安装 _安装系统_31

 9、这里有个问题需要考虑,要安装的机器可以动态获得ip,但是主机名要怎样改变呢?这里我们编写了一个脚本,可以让主机名随着ip地址的不同而不同

 Linux 系统自动化安装 _自动化_32

 10、依照手动引导安装实训中生成ks.cfg,我们来进行yum环境的配置、kickstart工具的安装和ks.cfg的生成,这些基本上都相同,唯一有差别的是后安装脚本需要我们把刚才编写的脚本拷到里边

 Linux 系统自动化安装 _安装系统_33


  注意:生成ks.cfg后不要忘记在里边添加key -- skip,生成的ks.cfg要拷到ftp的匿名根下

 11、安装的过程我们依照手动引导安装过程,先做一个空的虚拟主机,之后启动机器。如下图所示,说明机器进入正常的安装过程


 Linux 系统自动化安装 _安装系统_34