2.1 安装 CentOS 6.5

本章我们将介绍如何使用cobbler安装 CentOS 6.5 操作系统。请注意,我们的所有操作步骤均在命令行中完成。您也可以使用cobbler-web,而且更直观,方便您学习整个过程。

2.1.1 镜像准备

我们将使用CentOS-6.5-x86_64-DVD1.iso这张光盘,前文中介绍了如何获取该操作系统镜像,此处不再赘述。

2.1.2 cobbler配置

前文中我们已经介绍了cobbler配合dhcpd所需要做的修改。我们还需要在cobbler中如下位置:

# this is the address of the cobbler server -- as it is used
# by systems during the install process, it must be the address
# or hostname of the system as those systems can see the server.
# if you have a server that appears differently to different subnets
# (dual homed, etc), you need to read the --server-override section
# of the manpage for how that works.

server: 10.224.173.204

以及这里:

# if using cobbler with manage_dhcp, put the IP address
# of the cobbler server here so that PXE booting guests can find it
# if you do not set this correctly, this will be manifested in TFTP open timeouts.

next_server: 10.224.173.204

这两处均需修改为cobbler的IP地址。

之后请重启cobbler,然后执行cobbler sync,将配置变更同步至dhcpd。

2.1.3 导入镜像、添加profile、以及安装一个 CentOS 6.5 系统

  1. 将 CentOS 6.5 镜像挂载在本地文件系统中

     mkdir /mnt/cdrom
     mount -o loop CentOS-6.5-x86_64-DVD1.iso /mnt/cdrom
    
  2. 将 CentOS 6.5 系统导入cobbler

     cobbler import --name=CentOS-6.5 --arch=x86_64 --path=/mnt/cdrom
    

    此时cobbler将自动创建一个名为"CentOS-6.5-x86_64"的distro和一个同名的profile,而且这个profile使用了位于/var/lib/cobbler/kickstarts/中的sample_end.ks文件作为kickstart文件。如果您安装了cobbler-web,您可以在管理profile的页面查看到整个kickstart的内容。

    但您可能也会发现,如果直接在操作系统这边打开sample_end.ks,里面有很多叫做“SNIPPET”的东西,而且和您在web端看见的kickstart内容并不一样。Snippet是cobbler中一个相对高级的功能,它允许我们把kickstart文件拆分成不同的模块,并且在使用的时候动态地导入进来。由于我们会定义新的profile和kickstart文件,有关Snippet的具体使用方法,请参阅官方文档,我们这里暂时不赘述。

  3. 准备您自己的kickstart

    默认的kickstart一般位于/var/lib/cobbler/kickstarts/。您可以将您的kickstart放在此处,比如/var/lib/cobbler/kickstarts/centos-6.5-x86_64-minimal.kickstart

    注意:虽然我们的这个例子里面有“x86_64”字样,但kickstart文件和操作系统架构(位数)并没有什么关系。

    下面是我们给出的一份kickstart文件。

     #您是要安装还是要升级?(install/upgrade)
     install
     #这里我们选择网络安装,即我们导入的那个distro。
     url --url=http://10.224.173.204/cblr/links/CentOS-6.5-x86_64
     lang en_US.UTF-8
     keyboard us
     #我们在安装的时候通过DHCP获取了IP地址,此处您也可以这样设置,因为这之后机器的地址总要被修改。
     network --onboot yes --device eth0 --bootproto dhcp --noipv6 --nameserver 10.230.12.2,192.168.3.55
     #安装过程中不使用图形化界面
     skipx
     zerombr
     rootpw  --iscrypted $6$Pcob8WpgFXHv8RvQ$qeTBUMx6alHmON1s/VIzq2dqwwOYkCNdhXVT.HPDN6IZNJwWubHcKqY2VPnLemeQf0wo8e8dg/lL7assdUWPn1
     firewall --disabled
     authconfig --enableshadow --passalgo=sha512
     selinux --disabled
     timezone Asia/Shanghai
     #这个reboot的作用是在安装完毕之后自动重启,不需要人工点“重启”
     reboot
     bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
     #分区设置。请注意,这里的分区设置要求您的安装盘必须要有100G以上的磁盘空间。
     clearpart --all
    
     part /boot --fstype=ext4 --size=500
     part pv.008002 --grow --size=200
    
     volgroup VolGroup --pesize=4096 pv.008002
    
     logvol / --fstype=ext4 --name=LogVol00 --vgname=VolGroup --size=40960
     logvol /home --fstype=ext4 --name=LogVol01 --vgname=VolGroup --size=10240
     logvol /var --fstype=ext4 --name=LogVol02 --vgname=VolGroup --size=10240
     logvol /tmp --fstype=ext4 --name=LogVol03 --vgname=VolGroup --size=10240
     logvol swap --name=LogVol04 --vgname=VolGroup --size=4096
     #需要安装的包,有关包的信息,我们会在文末讲解。
     %packages
     @core
     @base
     %end
    

    这份kickstart文档中的说明内容已添加注释,但我们仍然建议您复制这份kickstart到实验环境时,顺便把这些注释都删掉。

  4. 添加自定义的profile

    我们已经有了一个系统为我们添加好的profile了,但是您最好还是自己再重新创建别的profile,并且标记上您自己定制的名字,比如“minimal”,“server_with_gui”等等。

     cobbler profile add --name=CentOS-6.5-x86_64-minimal --distro=CentOS-6.5-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-6.5-x86_64-minimal.ks
    
  5. 添加一个新的system,准备装系统

    使用如下命令,在cobbler中添加一条新系统的信息。

     cobbler system add --name=webserver-1 --profile=CentOS-6.5-x86_64-minimal  --interface=eth0 --mac=08:00:27:38:B5:90  --ip-address=10.224.173.234 --netboot-enabled=1 --static=1
    

    这里我们指定了MAC地址和要分配给这个地址的IP地址,同时还指定了这个机器要用到哪个profile。这些信息会由cobbler提供给DHCP,当机器启动时,DHCP会将对应的启动文件分配给这个机器,装系统等任务便能自动完成了。

    您需要在添加信息之后执行一次cobbler sync。将刚才添加的system的MAC地址和IP地址传递给DHCP。

  6. 开机,装系统

    没错。开机,然后系统就应该自己能灌进去了。

2.1.4 有关包的选择

我们在上一个小节介绍了用cobbler自动安装系统的大致步骤。本节我们将介绍一下kickstart文件中安装包的选择。

您可能已经注意到了,我们选择了CentOS-6.5-x86_64-DVD1.iso这个超过4G的镜像,但只进行了最小化(minimal)安装。您可能会问,我们何不直接使用CentOS-6.5-x86_64-minimal.iso?这二者前后相差数个GB,导入显然是小的更快,也更省空间呀。

问题就出在安装时包的选取上。我们在前文的kickstar中有下面这样一个区域:

%packages
@core
@base
%end

这里面@core@base是我们希望安装的“软件组”。为了简化一些常用软件的安装,我们将其打包成一个一个组,安装的时候便可以把可能需要用到的软件“一波带走”。其中,无论安装的是否是“minimal”,@core都是我们一定要安装的一个软件组,CentOS-6.5-x86_64-minimal.iso中也只提供了@core这一个软件组。但CentOS-6-5-x86_64-DVD1.iso中就提供了各种各样的软件组,有数据库的,Web Server的,开发环境的等等。所以这里我们导入了“DVD1”这个镜像,就是因为我们可以创建多个profile,并且选择不同的软件组。

我们在此处还添加了@base软件组,该软件组中提供了“man”,“wget”和“vim”等等日常中非常需要的软件。因此我们十分建议您安装的时候将该软件组也一起安装进来。

在系统的镜像盘中,软件组的定义位于/repodata/*-comps.xml(DVD1)或/repodata/*-minimal-x86_64.xml(minimal)。YUM源中也有对软件组的定义,位置在某个系统文件下的/repodata/*-comps.xml中。

注意:其实您也可以在kickstart文件中定义一个软件源(repo),然后从这个软件库中安装软件组。但是由于软件源中的内容可能有变动,不利于我们固定版本。因此我们没有在kickstart文件中设置软件源。