您的位置:首页 > 运维架构 > Linux

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

2013-03-18 15:39 274 查看
注意,以下是从文档里摘出来的大部分信息,文档中比下面只是多了些图形描述!

查看全部信息请下载文档(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挂载配合使用,这里暂时先写,本机IP为144.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
#在文件末尾增加一行,一共六段,注意空格:#1:ISO文件位置,2:挂载ftp路径,3:iso9660,4:loop,defaults,5、6:0
/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=eth0”表示多网卡的情况下选网卡eth0口,“text”表示非图形安装,红色字体是可选项
而在一套自动化安装系统中做多系统可选安装的
则需要另外做一套initrd.img与vmlinuz (与做系统版本对应的,如想做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 多系统安装