目次

OSのバージョンが上がった時のビルド環境更新手順

CentOS6.3→6.4になったので、kickstart環境もバージョン上げないとと思いページ作成。このページの内容のベースはCentOS6でKickstartを使って自動インストールするをご覧ください。

当然パッケージのバージョンが上がってるのでかなり大変。

6.3のkickstart環境をtar ball化しておく

# cd /root/
# tar czvf kickstart_build_6-3.tar.gz kickstart_build

kickstart_build_6-3.tar.gzはFTPでローカルにおいておく。

6.4をインストールする

6.3のビルド環境を作ったときと同様の手順でインストール。

kickstart_build_6-3.tar.gzをアップロードして展開する

rootのホームディレクトリにFTPで転送しておく。

# cd /root/
# tar xzvf kickstart_build_6-3.tar.gz

作りなおすものを消す

rm -f /root/kickstart_build/all_rpms/*
rm -f /root/kickstart_build/isolinux/*
rm -f /root/kickstart_build/isolinux/.discinfo
rm -f /root/kickstart_build/isolinux/Packages/*
rm -f /root/kickstart_build/isolinux/repodata/*
rm -Rf /root/kickstart_build/isolinux/images/*
消すものが多いので必要なものだけバックアップ取って いちから作りなおしたほうが転送速度の分だけ早いかもしれない。
/root/kickstart_build/utils/*
/root/kickstart_build/isolinux/isolinux.cfg
/root/kickstart_build/isolinux/ks/*
/root/kickstart_build/isolinux/postinstall/*

DVDから必要なファイルをコピー

cp /media/CentOS_6.4_Final/Packages/* /root/kickstart_build/all_rpms/
cp /media/CentOS_6.4_Final/isolinux/* /root/kickstart_build/isolinux/
cp /media/CentOS_6.4_Final/.discinfo /root/kickstart_build/isolinux/
cp -r /media/CentOS_6.4_Final/images/* /root/kickstart_build/isolinux/images/

repodataからcomps.xmlファイルを取得

cp /media/CentOS_6.4_Final/repodata/cb96727ddc89e5e1786456c6f2c08a81418296f949470311ee9c2ebb1a6ccc7d-c6-x86_64-comps.xml.gz .
gunzip cb96727ddc89e5e1786456c6f2c08a81418296f949470311ee9c2ebb1a6ccc7d-c6-x86_64-comps.xml.gz
mv -f cb96727ddc89e5e1786456c6f2c08a81418296f949470311ee9c2ebb1a6ccc7d-c6-x86_64-comps.xml comps.xml

all_rpmsからインストールに使うパッケージのみコピーする

/root/install.log

上記ログに出力されている全てのRPMを/root/kickstart_build/all_rpms/から/root/kickstart_build/isolinux/Packagesにコピーします。

#!/bin/bash
 
cp -r ../all_rpms/*.rpm ../isolinux/Packages/
:

上記のようなコードを書いて/root/kickstart_build/utilsに置いて実行します。(*.rpmはinstall.logに載っているrpmに置き換えます)

依存関係の解決

cd ~/kickstart_build/isolinux/Packages
~/kickstart_build/utils/follow_deps.pl ~/kickstart_build/all_rpms x86_64

依存関係のテスト

mkdir /tmp/testdb
rpm --initdb --dbpath /tmp/testdb
rpm --test --dbpath /tmp/testdb -Uvh *.rpm

repodata作成

cd ~/kickstart_build/all_rpms
rpm -Uvh createrepo*rpm deltarpm*rpm python-deltarpm*rpm
cd ~/kickstart_build/isolinux
declare -x discinfo=`head -1 .discinfo`
createrepo -u "media://$discinfo" -g ~/kickstart_build/comps.xml . 

muninに必要なパッケージをダウンロード

wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
vi /etc/yum.repos.d/epel-testing.repo

以下のenabled=0をenabled=1に編集

[epel-testing]
name=Extra Packages for Enterprise Linux 6 - Testing - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/testing/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-epel6&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
cd /root/kickstart_build/isolinux/postinstall/munin/rpms/
rm -f /root/kickstart_build/isolinux/postinstall/munin/rpms/*
yumdownloader --resolve munin

webminに必要なパッケージをダウンロード

vi /etc/yum.repos.d/webmin.repo

リポジトリ(/etc/yum.repos.d/webmin.repo)を追加する。

[Webmin]
name=Webmin Distribution Neutral
#baseurl=http://download.webmin.com/download/yum
mirrorlist=http://download.webmin.com/download/yum/mirrorlist
enabled=1
rpm --import http://www.webmin.com/jcameron-key.asc
yumdownloader --resolve webmin

isoファイルの作成

yum -y install anaconda-runtime
cd ~/kickstart_build
mkisofs -o custom.iso -b isolinux.bin -c boot.cat -no-emul-boot \
   -boot-load-size 4 -boot-info-table -R -J -v -T isolinux/
implantisomd5 custom.iso 

/root/kickstart_build/custom.isoによってより良いCentOSライフを!