自动和最新的Fedora 9安装与Kickstart和Novi
版本1.0
作者:Falko Timme
Kickstart允许您自动执行Fedora / RedHat / CentOS安装(即,您不必坐在计算机前面并回答安装程序的问题)。 如果您必须部署数十或数百个类似的系统(例如工作站),这是有用的和省时的。 Kickstart从Kickstart配置文件读取安装设置。 Kickstart的问题在于,它通常在分发版本发布之后使用发行版的软件包,即它不考虑更新,这意味着您必须在Kickstart安装后手动更新每个系统。 本指南介绍如何使用名为novi的工具来进行最新的Kickstart安装。
本文档不附带任何形式的保证! 我不会保证这将为您工作!
1初步说明
我将在这里使用一个Fedora 9服务器(IP地址192.168.0.100
)为Kickstart
安装设置一个本地的yum存储库。 yum存储库将使用http(您也可以使用ntp,ftp等)提供服务。
我将在第二个系统(Fedora 9桌面)上使用工具system-config-kickstart
(需要桌面环境)创建Kickstart配置文件ks.cfg
,然后将其传输到我们的Fedora 9 Kickstart服务器。
本教程适用于i386架构; 如果您使用x86_64,请在必要时将i386
替换为x86_64
。
2准备Kickstart服务器
我想使用http服务本地的yum存储库,因此我需要一个Web服务器(例如Apache):
yum install httpd
在Apache安装之后,我们为Apache创建系统启动链接并启动它:
chkconfig --levels 235 httpd on
/etc/init.d/httpd start
Fedora上Apache的默认文件根是/ var / www / html
。
接下来我们安装工具createrepo
:
yum install createrepo
我想将基本的Fedora 9存储库放在/ var / www / html / yum / base / 9 / i386中
(包括保存有关可用的rpm包的元数据的repodata目录以及包含rpm包的Packages
目录) / var / www / html / yum / updates / 9 / i386中的更新
(此目录将只保存更新rpms,没有子目录)。 我需要一个第三个目录, / var / www / html / yum / base / 9-prepatched / i386
,其中我将合并基本的Fedora 9存储库和更新。 所以我现在创建这些目录:
mkdir -p /var/www/html/yum/base/9/i386
mkdir -p /var/www/html/yum/updates/9/i386
mkdir -p /var/www/html/yum/base/9-prepatched/i386
现在我们可以填写/ var / www / html / yum / base / 9 / i386
目录。 如果您手边有Fedora 9 DVD,可以将其插入DVD驱动器,并按如下所示复制其内容:
mount /dev/cdrom /mnt
cd /mnt
cp -vfr * /var/www/html/yum/base/9/i386
cd /
umount /mnt
如果您没有Fedora 9 DVD,您可以按照以下方式填写目录(这可能需要几个小时,所以请耐心等待):
rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/releases/9/Fedora/i386/os/ /var/www/html/yum/base/9/i386
(您可以在这里找到一个Fedora镜像列表: http : //mirrors.fedoraproject.org/publiclist 。确保选择一个提供rsync的镜像。)
接下来我们将更新rpms下载到/ var / www / html / yum / updates / 9 / i386
:
rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/updates/9/i386.newkey/ --exclude=debug/ /var/www/html/yum/updates/9/i386
在我们合并基本软件包和更新之前,我们将/ var / www / html / yum / base / 9 / i386
中的一些文件/目录复制到/ var / www / html / yum / base / 9-prepatched / i386
:
cd /var/www/html/yum/base/9/i386
cp GPL /var/www/html/yum/base/9-prepatched/i386/
cp -fr images/ /var/www/html/yum/base/9-prepatched/i386/
cp media.repo /var/www/html/yum/base/9-prepatched/i386/
cp README-BURNING-ISOS-en_US.txt /var/www/html/yum/base/9-prepatched/i386/
cp -fr repodata/ /var/www/html/yum/base/9-prepatched/i386/
cp RPM* /var/www/html/yum/base/9-prepatched/i386/
cp TRANS.TBL /var/www/html/yum/base/9-prepatched/i386/
mkdir /var/www/html/yum/base/9-prepatched/i386/Packages
接下来我们安装novi ...
rpm -ivh http://downloads.exmachinatech.net/novi/1.1.9/novi-1.1.9-1.fc9.i386.rpm
...并将基本软件包和更新合并到/ var / www / html / yum / base / 9-prepatched / i386 / Packages中
,如下所示:
novi -a hardlink -t /var/www/html/yum/base/9-prepatched/i386/Packages /var/www/html/yum/base/9/i386/Packages /var/www/html/yum/updates/9/i386
这是一个示例输出:
[root@server1 i386]# novi -a hardlink -t /var/www/html/yum/base/9-prepatched/i386/Packages /var/www/html/yum/base/9/i386/Packages /var/www/html/yum/updates/9/i386
Loading RPMs from source /var/www/html/yum/base/9/i386/Packages
Now 2071 products loaded (2071 RPMs)
Loading RPMs from source /var/www/html/yum/updates/9/i386
Now 5748 products loaded (6631 RPMs)
Total 5748 products to process, from 6631 RPMs
[root@server1 i386]#
现在我们必须重新生成/ var / www / html / yum / base / 9-prepatched / i386 /
repodata中的元数据,因为它不包含有关更新的任何细节:
cd /var/www/html/yum/base/9-prepatched/i386
createrepo -g repodata/Fedora-9-comps.xml ${PWD}
就是这样,我们可以使用/ var / www / html / yum / base / 9-prepatched / i386
中的最新的Kickstart存储库
。
您应该创建一个cron作业来获取并合并最新更新并重新生成元数据,例如:
crontab -e
23 4 */2 * * /usr/bin/rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/updates/9/i386.newkey/ --exclude=debug/ /var/www/html/yum/updates/9/i386 && /usr/bin/novi -a hardlink -t /var/www/html/yum/base/9-prepatched/i386/Packages /var/www/html/yum/base/9/i386/Packages /var/www/html/yum/updates/9/i386 && cd /var/www/html/yum/base/9-prepatched/i386 && /usr/bin/createrepo -g repodata/Fedora-9-comps.xml ${PWD} |
(这将在04.23h的第二天获取最新的更新。)