Changes between Initial Version and Version 1 of yumサーバ構築方法


Ignore:
Timestamp:
Nov 7, 2016, 2:04:42 PM (8 years ago)
Author:
admin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • yumサーバ構築方法

    v1 v1  
     1= サーバ内にyum環境を構築する方法 =
     2
     3インストールDVDの内容をサーバにコピーします。
     4{{{
     5   /home/CentOS5.6Repo
     6}}}
     7
     8次に
     9{{{
     10vi /etc/yum.repo.d/local.repo
     11------------------------------
     12[local-base]
     13name= CentOS5.6
     14baseurl= file:///home/CentOS5.6Repo/
     15enabled=1
     16gpgcheck=0
     17---------------------------------
     18
     19createrepo /home/CentOS5.6Repo/
     20}}}
     21
     22を実行してリソースを登録します。
     23次回からローカルリポジトリからYUMコマンドが利用できます。
     24
     25== 上記の設定の詳細内容 ==
     26
     27yumのコマンドでパッケージ情報の参照先は/etc/yum.repos.d/の下にリポジトリファイルがあってそこの中身を見ています。
     28標準だとredhat-debuginfoのファイルしかないはずです。
     29
     30ここに新たに設定ファイルを作ってしまえばよいのです
     31
     32適当に/etc/yum.repos.d/local.repo とか作ることにします。
     33
     34書式としては以下な感じ。
     35{{{
     36[repo-name] (名前。適当に)
     37name= (名前、判別しやすいのをつけましょう)
     38baseurl= (リポジトリDBのあるpath) 
     39enabled=1 (1で有効、0だと無効)
     40gpgcheck=0 (1だとGPG-KEYのチェックありだが0でも可)
     41}}}
     42
     43さて、RHEL5.1のisoイメージの中身を確認しますとCluster、ClusterStorage、Server、VTというディレクトリがあり、
     44その各ディレクトリの中にはrepodataというディレクトリ、さらにその中にxmlファイルとかあります。
     45
     46ということはこのリポジトリDBを使えばいいじゃん、とか思ったのですが、そうはうまくいきませんでした。
     47
     48例えば/mntにisoイメージをマウントするとして
     49
     50baseurl部にfile:///mnt/Server/
     51
     52としてlocal.repoを作成、yum updateを実行したらパッケージの情報は取得できていますが、実際にrpmファイルをDownloadしようとする時に
     53{{{
     54IOError: urlopen error unknown url type: media
     55}}}
     56なんていうふうに怒られまます。どうもrepodataディレクトリ内のreopomd.xmlを覗いてみたらlocationがmedia://で始まるところになってます。
     57これじゃダメだ、使えない。
     58なのでcreaterepoコマンドでローカルに新しくリポジトリDBを作ります。
     59
     60{{{
     61# mount -o loop rhel-5.1-server-i386-dvd.iso /mnt
     62# mkdir /tmp/Server
     63# createrepo -o /tmp/Server/ -g /mnt/Server/repodata/comps-rhel5-server-core.xml -u file:///mnt/Server/ /mnt/Server/
     64
     65-o はリポジトリの出力先
     66-g はグループファイルをコピる
     67-u は実際のrpmのあるurlを記述
     68}}}
     69
     70こうしますと、暫くした後/tmp/Server/にリポジトリDBが作成されます。2000個以上パッケージがあります。
     71同様にVTやCluster、ClusterStorageに関してもローカルにリポジトリを作ってみたら、これらは30個ちょい。
     72
     73で、/etc/yum.repos.d/local.repoを編集。
     74
     75以下にしてみました。
     76{{{
     77-------------------------------
     78[Server]
     79name=local_Server
     80baseurl=file:///tmp/Server/ 
     81enabled=1
     82gpgcheck=0
     83
     84[VT]
     85name=local_VT
     86baseurl=file:///tmp/VT/ 
     87enabled=1
     88gpgcheck=0
     89
     90[Cluster]
     91name=local_Cluster
     92baseurl=file:///tmp/Cluster/ 
     93enabled=1
     94gpgcheck=0
     95
     96[ClusterStorage]
     97name=local_ClusterStorage
     98baseurl=file:///tmp/ClusterStorage/ 
     99enabled=1
     100gpgcheck=0
     101-------------------------------
     102}}}
     103
     104で、updateかける前に最初にbaseurl=file:///mnt/Server/で
     105キャッシュされた情報を削除するため、yum clean all を実行。
     106
     107その後、yum updateしたら無事にRHEL5.1になりました。
     108
     109ちなみにこの状態で yum gruoplist すると
     110Virtualization や Clustering ってのも登場しますので
     111
     112{{{
     113yum groupinstall Virtualization
     114}}}
     115
     116を実行したらXen環境に必要なパッケージがインストールされます。
     117
     118最初にOS入れる際にインストレーション番号を入れなくても
     119仮想化環境とかクラスターとか構築可能になります・・・
     120
     121= yumレポジトリサーバの構築手順 =
     122
     123ここでは「ローカルディスク上のRPMパッケージ管理機能」と「ネットワーク経由でRPMパッケージを取得する機能」両方を持ったyumレポジトリサーバを
     124構築する手順を紹介します。
     125
     126まず、ネットワーク経由でRPMパッケージを配信するためのyumレポジトリサーバを構築する場合、配信するプロトコルを決めます。今回はHTTP経由で行うとします。
     127
     128yumレポジトリサーバがHTTP経由でRPMパッケージを配信するためには、Webサーバを構築する必要があります。
     129
     130Red Hat Enterprise Linux 5に付属のApacheが標準で提供するWebサービスのディレクトリは「/var/www/html」です。そのため今回は「/var/www/html」以下にyumのレポジトリを作成します。
     131
     132作成するyumレポジトリのRPMパッケージを保管するディレクトリは「/var/www/html/yum/network1/RPMS」とするので「mkdirコマンド」でディレクトリを作成します。
     133{{{
     134# mkdir -p /var/www/html/yum/network1/RPMS
     135}}}
     136
     137次にyumレポジトリで管理したいRPMパッケージを上記のディレクトリにコピーします。今回は、Red Hat Enterprise Linux 5の
     138CD-ROMのコアコンポーネントである「Serverディレクトリ」に含まれるすべてのRPMをコピーします。
     139
     140{{{
     141# mount /dev/cdrom /media/
     142# cp -a /media/Server?*.rpm /var/www/html/yum/network1/RPMS/
     143# umount /media
     144}}}
     145
     146このコマンドは、すべてのCD-ROMで繰り返し行います。
     147
     148
     149yumレポジトリのメタデータを生成する
     150
     151次にyumレポジトリのメタデータを生成します。メタデータとは、yumレポジトリの全体を管理するための情報であり、yumコマンドはメタデータに登録されている情報をもとにパッケージの現在の状態を知ることができます。
     152
     153yumレポジトリのメタデータの生成はcreaterepoコマンドを使います。
     154{{{
     155# createrepo /var/www/html/yum/network1/RPMS/
     156}}}
     157
     158「ローカルディスク上のRPMパッケージ管理機能」を実現するため、yumレポジトリサーバ自身でyumのレポジトリにアクセスできるようにyumの設定ファイルを作成します。
     159{{{
     160# vi /etc/yum.repos.d/network1.repo
     161[network1]
     162name=Red Hat Enterprise Linux $releasever - $basearch via Newtork
     163baseurl=http://172.16.10.50/yum/network1/RPMS/
     164enabled=1
     165gpgcheck=1
     166gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
     167}}}
     168
     169ここで重要なのは「baseurlの行」です。まずhttpでyumレポジトリサーバのWebサービスのURLを指定します。また「/etc /yum.repos.d」
     170ディレクトリには、複数のレポジトリ設定ファイルを配置しておき、設定ファイル内の「enabled=」と書かれた箇所でこのレポジトリの有効・無効を切り替える
     171ことができます。enabled=1に設定すると、そのレポジトリは有効になります。
     172
     173次にyumレポジトリサーバでメタデータを読み込みます。
     174{{{
     175# yum list available
     176}}}
     177
     178以上でyumレポジトリサーバは構築は終了です。
     179
     180== yumコマンドでインストールできるかテストする ==
     181
     182ではテスト用のパッケージをyumコマンドでインストールできるかを確認します。
     183今回はテスト用のRPMパッケージとしてlogwatch RPMをインストールしてみましょう。
     184事前にlogwatchコマンドがインストールされていないことをrpmコマンドで確認しておきます。
     185{{{
     186# rpm -qa |grep logwatch
     187}}}
     188
     189yumコマンドでlogwatch RPMパッケージをインストールします。
     190{{{
     191# yum -y install logwatch
     192}}}
     193
     194logwatch RPMパッケージがシステムにインストールされているかを再度確認します。
     195{{{
     196# rpm -qa |grep logwatch
     197logwatch-7.3-5
     198}}}
     199
     200これでApache Webサービスを利用したネットワーク経由でのRPM配信を実現するyumレポジトリサーバは構築できました。
     201あとはRPMを取得したいクライアント側(管理対象)にyumの設定ファイルをコピーすれば、その管理対象はyumレポジトリサーバ
     202を利用してRPMパッケージの取得が可能になります。
     203
     204管理対象のマシンのホスト名を「bl460c01」とすると、以下のようにコピーしてください。
     205
     206{{{
     207# scp /etc/yum.repos.d/network1.repo bl460c01:/etc/yum.repos.d/
     208root@bl460c01's password:
     209network1.repo                        100%  203     0.2KB/s   00:00
     210}}}
     211では管理対象のマシンからyumコマンドでRPMパッケージが取得できるかどうかを確認しましょう。
     212{{{
     213[root@bl460c01 ~]# yum -y install logwatch
     214}}}
     215これで管理対象のマシン「bl460c01」上でyumコマンドまたはsystem-config-packagesを利用することにより、yumレポジトリサーバに保管されているRPMパッケージを取得できるようになりました。
     216
     217== 基本を押さえれば設定は難しくない ==
     218
     219以上でApache、Samba、FTP、NFSサーバ、yumレポジトリサーバの構築の基本的な手順を追いながら説明しました。
     220これらの設定は Red Hat Enterprise Linux 5のサーバ構築の基礎知識です。どんな大きなシステムでも
     221これらの基本を押さえておかないと、正しい管理はできません。
     222   
     223