自动化安装Centos-多系统安装

 注意,以下是从文档里摘出来的大部分信息,文档中比下面只是多了些图形描述!

查看全部信息请下载文档(http://down.51cto.com/data/706219)!!!欢迎交流。

1          案例描述

大量机器需要安装系统的时候,一台一台的安装很浪费时间与精力,于是使用kickstart便能实现批量安装,安装时只需要按一下机器电源,选网络安装便可。

2          案例分析

本文档是在实际试验的基础上完成的,文中每一步都是新手操作,按照步骤便能部署完成。

3          解决过程

安装环境,需要一台安装好CentOS6.0(作为部署自动化系统用)的一台电脑,系统中准备系统ISO文件;需要使用的服务或组件:dhcp服务、tftp服务、ftp服务和Kickstart

 

下面是部署过程:

3.1        安装组件包

3.1.1          安装环境搭建

1、创建yum本地安装源:

[root@localhost ~]# cd /etc/yum.repos.d/

[root@localhost ~]#mkdir bak

[root@localhost ~]#mv C* bak

[root@localhost ~]#vim yum.repo #创建并编辑yum.repo

添加以下内容

[base]

name=CentOS-6.0-64-dvd

baseurl=ftp://192.168.144.2/centos/6.0/x86_64/dvd#注意需要与下面ftp挂载配合使用,这里暂时先写,本机IP144.2

gpgcheck=0

enabled=1

2、挂载ISO文件

#创建pub/centos/6.0/x86_64/dvd 目录

[root@localhost ~]# mkdir -p /var/ftp/pub/centos60-64/dvd

#编辑自动挂载配置文件fstab,将ISO文件挂载在ftp目录下

[root@localhost ~]#vim /etc/fstab

#在文件末尾增加一行,一共六段,注意空格:#1ISO文件位置,2:挂载ftp路径,3iso96604loop,defaults560

/opt/iso/CentOS-6.0-x86_64-bin-DVD1.iso /var/ftp/centos/6.0/x86_64/dvd iso9660 defaults,loop 0 0

挂载

[root@localhost ~]# mount -a

此次试验挂载了三个ISO

ISO文件源位置

挂载目录

/opt/iso/CentOS-5.5-i386-bin-DVD.iso

/var/ftp/centos/5.5/i386/dvd

/opt/iso/CentOS-5.5-x86_64-bin-DVD-1of2.iso

/var/ftp/centos/5.5/x86_64/dvd

/opt/iso/CentOS-6.0-x86_64-bin-DVD1.iso

/var/ftp/centos/6.0/x86_64/dvd

因为使用yum下载挂载的ISO里面的包,需要ftp的服务的支撑。所以在这一步需要先安装ftp服务,此次是进入已挂载好的ISO里面去安装,如下:

3.1.2          配置FTP

[root@localhost ~]# cd /var/ftp/centos/6.0/x86_64/dvd/Packages/

[root@localhost Packages]# rpm -ivh vsftpd- 2.2.2 -6.el6.x86_64.rpm

[root@localhost Packages]# service vsftpd start

[root@localhost Packages]# chkconfig vsftpd on

3.1.3          安装主要包

包(服务)的名称

在此次试验的用途

dhcp

给安装端提供分配IP地址的服务,并指定tftp

Tftp-server

工具下载,提供pxelinux.0文件的下载

sytem-config-ickstart

生成ks.cfg文件所用

vsftpd

为安装端提供下载服务

syslinux

生成pxelinux.0文件,此文件需要用到

 

# vsftpd已在上面一步骤安装,所以此步骤不需要再次安装

[root@localhost ~]# yum install -y dhcp tftp-server syslinux  system-config-kickstart

3.2        配置tftp

配置文件位置:/etc/xinetd.d/tftp,使用vim编辑器进行编辑:

[root@localhost ~]# vim /etc/xinetd.d/tftp

内容如下,蓝色字体是需要修改行:

service tftp

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -u nobody -s /var/lib/tftpboot #添加-u nobody

        disable                 = no #修改为no

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}

修改之后,保存配置文件,启动tftp服务:

[root@localhost ~]# service xinetd start

[root@localhost ~]# chkconfig xinetd on

 

3.3        配置dhcp

配置dhcp,配置文件/etc/dhcp/dhcpd.conf

[root@localhost ~]# cp /usr/share/doc/dhcp- 4.1.1 /dhcpd.conf.sample /etc/dhcp/dhcpd.conf

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf

配置如下,蓝色字体为更改项

添加全局参数如下两行:

allow booting;

allow bootp;

# A slightly different configuration for an internal subnet.

   #下面一行是设网段与子网

subnet 192.168.144.0 netmask 255.255.255.0 {

#以下一行是准备给安装的机器分配IP范围

  range 192.168.144.181 192.168.144.190;

  option domain-name-servers ns1.internal.example.org;

  option domain-name "internal.example.org";

#以下一行是网关

  option routers 192.168.144.1;

#以下一行为本网段的广播地址

  option broadcast-address 192.168.144.255;

  default-lease-time 600;

  max-lease-time 7200;

#以下一行是指定下一个服务器地址,本次试验所有服务都在本机上,所以指向本机IP

  next-server 192.168.144.2;

#以下一行是指定启动的映象文件,放在/var/lib/tftpboot目录下

filename "pxelinux.0";

}

启动dhcp服务:

#service dhcpd start

#chkconfig dhcpd on

3.4        配置PXE

pxe引导的前提

[root@localhost ~]#mkdir /var/lib/tftpboot/pxelinux.cfg

[root@localhost ~]#cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/

ISO中拷贝文件:

[root@localhost ~]#cd /var/ftp/centos/6.0/x86_64/dvd/isolinux/

[root@localhost isolinux]#cp boot.msg vesamenu.c32 splash.jpg /var/lib/tftpboot/

[root@localhost isolinux]# cd /var/ftp/centos/6.0/x86_64/dvd/images/pxeboot/

[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/

编辑/var/lib/tftpboot/pxelinux.cfg/default文件,该文件为引导界面文件,此文件本不存在,需要到其它地方拷贝过来:

[root@localhost pxeboot]# cp /var/ftp/centos/6.0/x86_64/dvd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

[root@localhost pxeboot]# vim /var/lib/tftpboot/pxelinux.cfg/default

蓝色字体为本次所更改:

default vesamenu.c32

#prompt 1

timeout 600

display boot.msg

menu background splash.jpg

menu title Welcome to CentOS 6.0!

menu color border 0 #ffffffff #00000000

menu color sel 7 #ffffffff #ff000000

menu color title 0 #ffffffff #00000000

menu color tabmsg 0 #ffffffff #00000000

menu color unsel 0 #ffffffff #00000000

menu color hotsel 0 #ff000000 #ffffffff

menu color hotkey 7 #ffffffff #ff000000

menu color scrollbar 0 #ffffffff #00000000

label linux

  menu label ^AUTO Install      CentOS 6.0 64Bit

  menu default

  kernel vmlinuz6064

  append initrd=initrd6064.img ks=ftp://192.168.144.2/centos/ks/ks6.0-64.cfg ksdevice=eth0 text

  #上面一行红字体“ksdevice=eth 0 表示多网卡的情况下选网卡eth0口,text表示非图形安装,红色字体是可选项

而在一套自动化安装系统中做多系统可选安装的

则需要另外做一套initrd.imgvmlinuz (与做系统版本对应的,如想做centos5.564位自动化安装的就需要进centos5.564位里面,安装5.5版本对应的kickstart,然后生成ks文件)

为了方便管理,每套文件放到对应的目录下面,具体操作部署如下:

系统版本

对应的文件

存放位置

Centos5.5_i386

initrd.img  vmlinuz

/var/lib/tftpboot/centos5.5_i386

Centos5.5_x86_64

initrd.img  vmlinuz

/var/lib/tftpboot/centos5.5_x86_64

Centos6.0_x86_64

initrd.img  vmlinuz

/var/lib/tftpboot/centos6.0_x86_64

以下为default所有内容,蓝色字体为所改项,其它为默认。具体细节在此不再深入!

default vesamenu.c32

#prompt 1

timeout 600

display boot.msg

menu background splash.jpg

menu title Welcome to AUTO Install CentOS system for MOVISION!

menu color border 0 #ffffffff #00000000

menu color sel 7 #ffffffff #ff000000

menu color title 0 #ffffffff #00000000

menu color tabmsg 0 #ffffffff #00000000

menu color unsel 0 #ffffffff #00000000

menu color hotsel 0 #ff000000 #ffffffff

menu color hotkey 7 #ffffffff #ff000000

menu color scrollbar 0 #ffffffff #00000000

#以下为三个系统的安装选择菜单项,最下面一个为默认,其中类似ks5.5-64.cfg的文件,需要在kickstart里面生成后改成相对应的名子,存放目录为服务器的/var/ftp/centos/ks

label centos5.5_i386

  menu label ^AUTO Install      CentOS 5.5 32Bit

   kernel centos5.5_i386/vmlinuz

   append initrd=centos5.5_i386/initrd.img ks=ftp://192.168.144.2/centos/ks/ks5.5-32.cfg

label centos5.5_x86_64

  menu label ^AUTO Install      CentOS 5.5 64Bit

  kernel centos5.5_x86_64/vmlinuz

  append initrd=centos5.5_x86_64/initrd.img ks=ftp://192.168.144.2/centos/ks/ks5.5-64.cfg

label centos6.0_x86_64

  menu label ^AUTO Install      CentOS 6.0 64Bit

  menu default

  kernel centos6.0_x86_64/vmlinuz

  append initrd=centos6.0_x86_64/initrd.img ks=ftp://192.168.144.2/centos/ks/ks6.0-64.cfg

以上基本部署都完成了,接下来就是需要利用kicstart成生)各版本操作系统的KS文件

3.5        生成ks.cfg文件

使用Kickstart来生成自动化安装文件,kickstart软件使用很简单,和安装一遍Linux一样,其中安装源选择如下(以Cenots6.0-64为例):

linux命令行输入system-config-kickstart回画出现 kickstart 画面

暂时把ks.cfg文件保存到/opt目录下面

复制ks.cfg文件到/var/ftp/centos/ks,并修改权限、修改相关内容

[root@localhost opt]# cd /var/ftp/centos/ks/

[root@localhost ks]# cp /opt/ks.cfg /var/ftp/centos/ks

[root@localhost ks]#mv ks.cfg ks6.0-64.cfg

[root@localhost ks]# chmod 777 /var/ftp/centos/ks/ks6.0-64.cfg

[root@localhost opt]# vim  /var/ftp/pub/ks.cfg #打开文件,添加以下蓝色字体内容(主要是为了自适应磁盘大小)

part / --fstype="ext4" --size=4096  --grow

 

如果在实际环境中,如果没有图形化界面的话,可以直接找到一个已安装好的centos6.0-64的系统,使用/root/anaconda-ks.cfg,进行做相应更改。system-config-kickstart的作用就是生成这样的文件,配置好后,将ks.cfg文件保存到ftp目录/var/ftp下,整个配置完成,其他没有安装系统的服务器,选择从网卡引导系统,系统会自动化安装。

被自动化安装端设置

因为是在虚拟机上做的试验,所以接下来是需要配置即将被自动化安装的安装端相关信息:

给网卡做桥接:

复制一个网卡信息(ifcfg-eth0)到ifcfg-br0

1、  修改ifcfg-br0信息 (添加、修改以下两行)

DEVICE=br0

TYPE=Bridge

2、  修改ifcfg-eth0信息 (添加、修改以下一行)

BRIDGE=br0               

3、重启网卡

4          解决结果

解决了多台服务器重复安装的问题,减少了时间。

5          总结

linux相对而言来说是个比较成熟的产品,但问题(BUG)有很多,大部分的问题网上都会有对应的解决方案,通过自己的学习可以转化为我用,提高工作效率,节约时间。

你可能感兴趣的:(centos,多系统安装)