Table of Contents

  1. 概要
  2. 手順
    1. サーバ側

cobbler でミラーレポジトリ&自前レポジトリ

テスト環境
CentOS5 テスト用最小インストール手順参照。

概要

cobblerで、外部の公式レポジトリのミラーと、独自のRPMパッケージを配布するレポジトリを使えるようにする。

手順

サーバ側

配布したい自前のRPMファイルを適当なディレクトリに置く。今回の例では/home/dist/repo/RPMSにpuppetクライアント用のパッケージとkoanのパッケージを置いてみた。

# mkdir -p /home/dist/repo/RPMS
# cp -pi /tmp/facter-1.3.8-1.el5.noarch.rpm  /tmp/koan-0.6.3-3.el5.noarch.rpm  /tmp/puppet-0.24.1-1.el5.noarch.rpm /home/dist/repo/RPMS/.

cobbler repo add コマンドでレポジトリに追加。ファイルを置いたディレクトリは/home/dist/repo/RPMSだけど、--mirrorで指定するパスはその一つ上にするのがポイント。

# cobbler repo add --name="centos-5.1-i386-origs" --mirror=/home/dist/repo

cobbler repo report で確認してみる。

repo             : centos-5.1-i386-origs
mirror           : /home/dist/repo
keep updated     : True
rpm list         : 
createrepo_flags : -c cache
arch             : 

オッケな様子。cobbler reposyncする。

# cobbler reposync

reposyncすると、apacheで公開されているディレクトリにコピーされて自動的にcreaterepoコマンドが実行される。コピーされるところが冗長と言えば冗長だけどまあよしとする。

# find /var/www/cobbler/repo_mirror/centos-5.1-i386-origs/
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/config.repo
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/RPMS
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/RPMS/koan-0.6.3-3.el5.noarch.rpm
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/RPMS/puppet-0.24.1-1.el5.noarch.rpm
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/RPMS/facter-1.3.8-1.el5.noarch.rpm
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/repodata
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/repodata/other.xml.gz
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/repodata/filelists.xml.gz
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/repodata/repomd.xml
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/repodata/primary.xml.gz
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/cache
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/cache/facter-2dacd5063ed12f47fb2116e905493139db57f6c2
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/cache/puppet-a5208540160a42a3012654e59f95b17d36a4dca1
/var/www/cobbler/repo_mirror/centos-5.1-i386-origs/cache/koan-2a8012be1727b0f197abcaa18cf0863cff560076

ではこれをプロファイルとヒモづけます。

# cobbler profile edit --name="centos-5.1-i386" --repos="centos-5.1-i386-addons centos-5.1-i386-extras centos-5.1-i386-updates centos-5.1-i386-origs"

上の例では、予め cobbler repo add していた、CentOS5 の 標準レポジトリである updates、addons、extras の各レポジトリも併せて追加している。複数指定する場合は、スペースで区切る。

cobbler report で確認。

profile         : centos-5.1-i386
distro          : centos-5.1-i386
kickstart       : /etc/cobbler/kickstart_co51.ks
kernel options  : {}
ks metadata     : {}
virt file size  : 5
virt ram        : 512
virt type       : auto
virt path       : 
virt bridge     : xenbr0
virt cpus       : 1
repos           : ['centos-5.1-i386-addons', 'centos-5.1-i386-extras', 'centos-5.1-i386-origs', 'centos-5.1-i386-updates']
dhcp tag        : default
server          : <<inherit>>

ちゃんとヒモづけられた。

最後に忘れずcobbler sync。

# cobbler sync

でこの状態でインストールで使われるキックスタートファイルの実体(テンプレートの方ではなく)を見てみる。

# vi /var/www/cobbler/kickstarts_sys/システム名/ks.cfg
・・・
repo --name=centos-5.1-i386-addons --baseurl=http://192.168.0.100/cobbler/repo_mirror/centos-5.1-i386-addons
repo --name=centos-5.1-i386-extras --baseurl=http://192.168.0.100/cobbler/repo_mirror/centos-5.1-i386-extras
repo --name=centos-5.1-i386-updates --baseurl=http://192.168.0.100/cobbler/repo_mirror/centos-5.1-i386-updates
repo --name=centos-5.1-i386-0 --baseurl=http://192.168.0.100/cobbler/ks_mirror/centos-5.1
repo --name=centos-5.1-i386-origs --baseurl=http://192.168.0.100/cobbler/repo_mirror/centos-5.1-i386-origs
・・・

%post
wget http://192.168.0.100/cblr/repos_profile/centos-5.1-i386/centos-5.1-i386-addons.repo --output-document=/etc/yum.repos.d/centos-5.1-i386-addons.repo
wget http://192.168.0.100/cblr/repos_profile/centos-5.1-i386/centos-5.1-i386-extras.repo --output-document=/etc/yum.repos.d/centos-5.1-i386-extras.repo
wget http://192.168.0.100/cblr/repos_profile/centos-5.1-i386/centos-5.1-i386-updates.repo --output-document=/etc/yum.repos.d/centos-5.1-i386-updates.repo
wget http://192.168.0.100/cblr/repos_profile/centos-5.1-i386/centos-5.1-i386-0.repo --output-document=/etc/yum.repos.d/centos-5.1-i386-0.repo
wget http://192.168.0.100/cblr/repos_profile/centos-5.1-i386/centos-5.1-i386-origs.repo --output-document=/etc/yum.repos.d/centos-5.1-i386-origs.repo

最初のブロックでは、追加したレポジトリがインストール時に使用されるように設定されており、後半のブロックでは、OSインストール後もこれらのレポジトリを使えるようにyumの設定ファイルを取得している。これで、

  • OSインストール後は、パッケージ更新で外部のミラーを参照する必要が無くなり、cobblerサーバ内のミラーを見に行くようになるので、帯域の節約・外部ミラーの負荷軽減になる。
  • OSインストール後にyum updateしなくても、その時点で最新の状態でインストールが完了する(もちろん、ちゃんとreposyncしていれば)。
  • もちろん、自前パッケージもインストール時に併せてインストールすることも可能。

になり、また一つ属人的な手間が減らすことができます。

OSインストール時にpuppetクライアントを併せてインストールして、puppetサーバ側でautosign.conf設定しておけば、ほんとNICつないで電源入れたらサーバの各種設定まで一気に行っちゃえるんじゃないかなぁ。