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つないで電源入れたらサーバの各種設定まで一気に行っちゃえるんじゃないかなぁ。

