yumリポジトリサーバ構築
yumとは「Yellowdog Updater Modified 」の略。LinuxのRPM互換パッケージ管理システムである。
以下目的のためイントラネット環境内でyumリポジトリサーバを立ち上げる。
- インターネット接続不可環境でのサーバ構築
- 複数サーバ構築時のネット負荷軽減
- 複数サーバ構築時の作業軽減
目的
イントラネット内でyumリポジトリサーバを構築し、サーバ構築時の作業負荷軽減とネットワーク負荷軽減を図る。
構築条件
構築機器
- 仮想サーバ SUN VirtualBox 4.3 Hyper-V で構築
作成環境
OS | CentOS 6.5 64bit版 |
サーバ作成条件
サーバIP | 192.168.0.100/24 |
ホスト名 | hogehogeServer |
user | hogehoge |
userpasswd | hogehogepass |
手順記入ルール
- コマンド行頭記号で 「$」はユーザ権限 「#」はスーパーユーザー権限 を表示
- コマンドが長くなる場合は、行末に「\」を記述し複数行に記述。
前準備
- CentOSインストール 実施
- yumリポジトリ設定 実施
Apache動作設定
Webアクセス設定
- Apacheインストール
# yum install httpd
- 起動
# /etc/rc.d/init.d/httpd start
- 自動起動設定
# chkconfig httpd on
- 確認
# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Webアクセス確認
http://192.168.0.100/ → WEBページが表示されること
createrepoインストール
【Telnet】
- rootでログイン
$ su パスワード:
(1)createrepoインストール
リポジトリ作成ツール「createrepo」をインストール
- createrepoインストール
# yum install createrepo
================================================================================ Package Arch Version Repository Size ================================================================================ Installing: createrepo noarch 0.9.9-18.el6 c6-media 94 k Installing for dependencies: deltarpm x86_64 3.5-0.5.20090913git.el6 c6-media 71 k libxml2-python x86_64 2.7.6-14.el6 c6-media 321 k python-deltarpm x86_64 3.5-0.5.20090913git.el6 c6-media 27 k
リポジトリ用フォルダ作成
以下のとおり作成する。
html/ --- yum --+-- i386 ← 32bitOS DVDコピー +-- x86_64 ← 64bitOS DVDコピー +-- SRPMS ← rpmソースイメージ +-- rpm ← 独自で収集した一般rpm +-- extra ← 独自で収集した特別rpm ※通常enabled=0 にしておく
(1)フォルダ作成
- i386フォルダ作成
# mkdir -p /var/www/html/yum/i386
- x86_64フォルダ作成
# mkdir -p /var/www/html/yum/x86_64
- SRPMSフォルダ作成
# mkdir -p /var/www/html/yum/SRPMS
- rpmフォルダ作成
# mkdir -p /var/www/html/yum/rpm
- extraフォルダ作成
# mkdir -p /var/www/html/yum/extra
- 確認
# ls -l /var/www/html/yum/
drwxr-xr-x 2 root root 4096 2月 16 17:44 2014 SRPMS drwxr-xr-x 2 root root 4096 2月 16 17:44 2014 extra drwxr-xr-x 2 root root 4096 2月 16 17:44 2014 i386 drwxr-xr-x 2 root root 4096 2月 16 17:44 2014 rpm drwxr-xr-x 2 root root 4096 2月 16 17:44 2014 x86_64
rpmデータコピー
CentOS 32bit DVD をコピー
★CentOS 32bit DVDをDVDドライブにセット
- DVDドライブマウント
# mount /dev/dvd /mnt
- DVDメディアコピー
# cp -R /mnt/* /var/www/html/yum/i386
- DVDドライブアンマウント
# umount /mnt
CentOS 64bit DVD をコピー
★CentOS 64bit DVDをDVDドライブにセット
- DVDドライブマウント
# mount /dev/dvd /mnt
- DVDメディアコピー
# cp -R /mnt/* /var/www/html/yum/x86_64
- DVDドライブアンマウント
# umount /mnt
★64bit版の場合DVDが2枚あるので、DVD入れ替え後手順を繰り返す
リポジトリデータベース登録
(1)通常rpm用リポジトリデータベースを更新
- SRPMS更新実行
# createrepo -v /var/www/html/yum/SRPMS
- rpm更新実行
# createrepo -v /var/www/html/yum/rpm
- extra更新実行
# createrepo -v /var/www/html/yum/extra
★i386とx86_64はDVDコピー時にリポジトリデータベースも登録されるためコマンド不要
(2)確認用リポジトリ登録
- 登録
# vi /etc/yum.repos.d/intra-repo.repo
- 全面追加
[intra-repo] name=CentOS-5.6 - Intra repo baseurl=http://192.168.0.100/yum/$basearch/ gpgcheck=0 enabled=1
[intra-repo-rpm] name=Intra repo rpm baseurl=http://192.168.0.100/yum/rpm/ gpgcheck=0 enabled=1
[intra-repo-extra] name=Intra repo extra baseurl=http://192.168.0.100/yum/extra/ gpgcheck=0 enabled=0
(3)確認
- データクリア
# yum clean all
- 確認
# yum list
intra-repo | 4.0 kB 00:00 intra-repo/primary_db | 4.4 MB 00:00 intra-repo-rpm | 2.9 kB 00:00 intra-repo-rpm/primary_db | 1.2 kB 00:00
:
- Web確認
http://192.168.0.100/yum/ → フォルダが見えること
(4)リポジトリデータベースコピー
- リポジトリ登録データをyumにコピー
★他サーバからのアクセス用
# cp /etc/yum.repos.d/intra-repo.repo /var/www/html/yum/
- 確認
# ls -l /var/www/html/yum/
-rw-r--r-- 1 root root 304 2月 16 18:05 2014 intra-repo.repo
- 終了
# exit exit $
独自収集rpmのフォルダへの登録方法
前準備
- FTPサーバ構築 実施
(1) ファイル転送
【FTP】
ftp にて、ユーザエリア「/home/hogehoge」に 「xxx.rpm」 をアップ
(2)html直下にコピー
【Telnet】
- ファイル確認
# ls -l
-rw-r--r-- 1 hogehoge hogehoge 2306596 2月 16 18:20 2014 xxx.rpm
- ファイルコピー
# cp xxx.rpm /var/www/html/yum/rpm/
(3)通常rpm用リポジトリデータベースを更新
- 更新実行
# createrepo -v /var/www/html/yum/rpm/
Saving Primary metadata Saving file lists metadata Saving other metadata
(4)確認
- フォルダ確認
# ls -l /var/www/html/yum/rpm/ -rw-r--r-- 1 root root 2306596 2月 16 18:31 2014 xxx.rpm drwxr-xr-x 2 root root 4096 2月 16 18:31 2014 repodata
- yumキャッシュクリア
# yum clean all
- リポジトリ登録確認
# yum list | grep xxx
xxx xxx intra-repo-rpm
他サーバーでのyumリポジトリ設定
前準備
- wget install 実施
# yum install wget
(1)yumリポジトリ作成
- リポジトリデータベースをコピー
# wget http://192.168.0.100/yum/intra-repo.repo
- 確認
# ls -l
-rw-r--r-- 1 root root 304 2月 16 18:05 2014 intra-repo.repo
- リポジトリデータベースを移動
# cp intra-repo.repo /etc/yum.repos.d/
★もしwgetコマンドが使用できない場合intra-repo.repoを直接作成
- yumリポジトリ新規作成
# vi /etc/yum.repos.d/intra-repo.repo
- 全面追加
[intra-repo] name=CentOS-5.6 - Intra repo baseurl=http://192.168.0.100/yum/$basearch/ gpgcheck=0 enabled=1
[intra-repo-rpm] name=Intra repo rpm baseurl=http://192.168.0.100/yum/rpm/ gpgcheck=0 enabled=1
[intra-repo-extra] name=Intra repo extra baseurl=http://192.168.0.100/yum/extra/ gpgcheck=0 enabled=0
(2)yumリポジトリ確認
- yumキャッシュクリア
# yum clean all
- 確認
# yum list all
intra-repo | 4.0 kB 00:00 intra-repo/primary_db | 4.4 MB 00:00 intra-repo-rpm | 2.9 kB 00:00 intra-repo-rpm/primary_db | 2.9 kB 00:00
:
遭遇したトラブル
無し
問題:
無し
原因:
無し
謝辞
テキスト作成にあたり、以下サイトを参考にさせて頂きました。ありがとうございます。