最近购买了抚琴煮酒的《构建高可用linux服务器》一书,其中有关于自动化安装linux系统的文章,自己就按照书中所讲,尝试了一下。其中也遇到了一些问题,自己也找到了相关的解决方法。现在自己就把整个过程写下来,也算是自己的总结。
本文只是自己个人总结,在实验中参照了酒哥书中的内容和网上的一些内容,所以可能与其他人相关文章有相似之处,敬请见谅。
第一步 安装操作系统,实验我是用的centos5.3最小化安装。因为Kickstart需要使用图形化安装,所以在安装系统时最好把桌面给选择上。如果没有选择,可以使用yum后期安装。
命令如下:
yum -y groupinstall 'X Window System' (安装X Window System)
yum -y groupinstall 'GNOME Desktop Environment' (安装GNOME Desktop)
第二步 安装tftp服务
使用yum安装tftp-server,并启用
yum -y install tftp-server
修改/etc/xinetd.d/tftp文件,将disable=yes改为no
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
启动xinetd服务
service xinetd start
第三步 复制相关的文件
因使用http提供系统安装的服务,所以把光盘里的内容复制到/var/www/html下
mount /dev/cdrom /media
cp -rfv /media /var/www/html
从xinetd中可以看到tftp服务在/(根)目录下创建了tftpboot目录,把需要的一些文件拷贝到这个目录下面。
复制pxelinux.0文件至tftpboot文件夹中,如下所示。
cp /usr/lib/syslinux/pxelinux.0 /tftpboot
把DVD光盘上的/image/pxeboot/initrd.img和vmlinux复制到/tftpboot/中,如下所示。
cp /var/www/html/images/pxeboot/vmlinuz /tftpboot
复制DVD光盘上的isolinux/*.msg到/tftpboot目录下,如下所示:
cp /var/www/html/isolinux/*.msg /tftpboot/
在tftpboot中新建一个pxelinux.cfg目录:
mkdir pxelinux.cfg
将isolinux目录中的isolinux.cfg复制到pxelinux.cfg目录中,同时更改文件名称为default,命令如下所示:
cd pxelinux.cfg
cp /var/www/html/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
第四步 安装dhcp服务
yum -y install dhcp
修改相关的配置文件
然后复制配置模板文件到指定的目录中,并重新命名。
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
接着修改/etc/dhcpd.conf配置文件,文件最后修改内容如下所示:
ddns-update-style interim;
ignore client-updates;
next-server 192.168.20.2;
filename "/pxelinux.0";
subnet 192.168.20.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.20.1;
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
option domain-name-servers 192.168.20.1;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.20.128 192.168.20.254;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}最后启动dhcp服务:
service dhcpd start
第五步 使用yum工具安装Kickstart。
yum -y install system-config-kickstart
然后在gnome的桌面环境下配置kickstar,启动命令为:
system-config-kickstart
启动后如图所示:
这里需要注意的是,如果你自己更改过本地的yum源,在选择安装包的过程中会出现如下报错:
Package selection is disabled due to problems downloading package information.
这时只需要在/etc/yum.repos.d目录下建立一个以base命名的repo文件即可。
[root@guyi yum.repos.d]# cat base.repo
# CentOS-Media.repo
#
# This repo is used to mount the default locations for a CDROM / DVD on
# CentOS-5. You can use this repo and yum to install items directly off the
# DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
# yum --enablerepo=c5-media [command]
#
# or for ONLY the media repo, do this:
#
# yum --disablerepo=\* --enablerepo=c5-media [command]
[base]
name=base
baseurl=file:///media/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
在正常启动Kickstart后,可以对自动安装做一些调整。比如时区、root密码、分区等。这些网上有很多,这里就不过多叙述,我只提一些我自己遇到的问题。
在选择安装方法时,选择http服务时,http服务的目录直接填写“/”即可。
最后把生成的文件ks.cfg保存到/var/www/html目录下。
第六步 修改default文件。
)修改/tftpboot/pxelinux.cfg/default文件,指定读取ks.cfg的方法,即修改文件第一行内容,改动后文件第一行内容如下所示:
default text ks=http://192.168.20.2/ks.cfg(一定要是文件的第一行)
另外,也建议将timeout时间由原先的600改为1,timeout时间是引导时等待用户手动选择的时间,设为“1”可直接引导。
最后重启所有服务:
service xinetd restart
service httpd restart
service dhcpd restart
重启后,就可以新建个虚拟机测试了(注意虚拟机的网卡模式要一致)
因本文只是作为自己总结所用,所以写的比较简单,如有错误之处,也请大家指出来。