Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

DVD ISO を使用して Red Hat Enterprise Linux 5/6/7/8/9 の Apache 経由で更新やインストールを配信できるようにローカルのレポジトリーを作成する方法

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise Linux 8
  • Red Hat Enterprise Linux 9

Issue

  • yum ローカルレポジトリーを Apache 経由で配信し、Red Hat Enterprise Linux の HTTP 経由で DVD ISO の内容を共有するように設定するにはどうすればよいですか。
  • http ソースを使用して Red Hat Enterprise Linux のネットワークインストール方法を使用するために必要な手順は何ですか。
  • 更新またはインストール用に DVD iso を使用して Red Hat Enterprise Linux 5/6/7/8/9 のローカルリポジトリーを作成する方法を教えてください。
  • インターネットに接続していない場合に RHEL のマイナーバージョンをアップグレードするにはどうすればよいですか。
  • 内部 yum リポジトリーを設定するにはどうすればよいですか。

Resolution

このサーバー自体 (セルフホスト) でのみ使用できる ISO イメージ経由でリポジトリーを作成します。

  • iso ファイルを yum の宛先として/mnt/rhiso にマウントします。

    # mkdir -p /mnt/rhiso
    # mount -o loop RHELX-XXXX.iso /mnt/rhiso
    
  • DVD を使用する場合は、DVD を cdrom に挿入し、DVD を yum の宛先として/mnt/rhiso にマウントします。

    # mkdir -p /mnt/rhiso
    # mount /dev/cdrom /mnt/rhiso
    
  • サーバー上に yum repo ファイル (/etc/yum.repos.d/dvd.repo) を作成します。

    [RHEL5-Server-DVD]
    name=Red Hat Enterprise Linux $releasever - $basearch (DVD)
    baseurl=file:///mnt/rhiso/Server
    enabled=1
    gpgcheck=1 
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    
  • ワークステーションに RHEL を使用する場合は、次のようになります。

    [RHEL-Server-DVD]
    name=Red Hat Enterprise Linux $releasever - $basearch (DVD)
    baseurl=file:///mnt/rhiso/Workstation
    enabled=1
    gpgcheck=1 
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    
  • Red Hat Enterprise Linux 8/9 を使用している場合は、次のようになります。

    # vi /etc/yum.repos.d/BaseOS.repo
    [BaseOS]
    name=Red Hat Enterprise Linux 8.0 BaseOS
    baseurl=file:///mnt/rhiso/BaseOS/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    
    # vi /etc/yum.repos.d/AppStream.repo
    [AppStream]
    name=Red Hat Enterprise Linux 8.0 AppStream
    baseurl=file:///mnt/rhiso/AppStream/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    

このサーバーと別のサーバーで使用できる apache (httpd) ベースの yum リポジトリーを設定します。

要件:
  • yum リポジトリーをホストするサーバーには、httpd および yum パッケージがインストールされている必要があります。
  • yum リポジトリーを使用するクライアントサーバーには、yum パッケージがインストールされている必要があります。
手順
  • httpd サーバーで、Red Hat Enterprise Linux DVD ISO RHELX-XXXX.iso の内容を宛先の Web ディレクトリーにコピーします。

    # mkdir -p /var/www/html/cdrom/
    # mount -o loop RHELX-XXXX.iso /media
    # shopt -s dotglob
    # cp -apvR /media/* /var/www/html/cdrom/
    
  • /etc/httpd/conf/httpd.conf の以下のエントリーを変更します。<ip_address> は、リポジトリーサーバーの IP アドレスです。

    ServerAdmin root@<ip_address>
    DocumentRoot /var/www/html/
    ServerName <ip_address> 
    

    注記: ServerName パラメーターが存在しない可能性があります。

  • httpd の設定を確認して、サービスを再起動します。

    # httpd -t
    # service httpd start
    
  • これで、lynx を使用して、非常に重要な repomd.xml ファイルにアクセスできるようになります。

    # lynx http://<ip_address>/cdrom/repodata/repomd.xml
    
  • Apache で 403 forbidden error を発生する場合、SELinux が原因の可能性があります。httpd コンテンツの SELinux コンテキストが正しいことを確認します。

    # chcon -R -t httpd_sys_content_t /var/www/html/cdrom/
    
    Or
    
    # restorecon -vR /var/www/html/cdrom/
    
  • コンテキストの変更を確認します。iso9660_t などの代わりに、コンテキストに httpd_sys_content_t を指定する必要があります。

    # ls -ldZ /var/www/html/cdrom/*
    dr-xr-xr-x. 2 root root system_u:object_r:httpd_sys_content_t:s0 61440 Dec 21 21:02 /var/www/html/cdrom/Packages
    dr-xr-xr-x. 2 root root system_u:object_r:httpd_sys_content_t:s0  4096 Jan 17 08:12 /var/www/html/cdrom/repodata
    <snip>
    
  • クライアントシステムで、サーバーを参照する yum リポジトリーファイルを設定します。

    # cat /etc/yum.repos.d/dvd.repo
    [RHEL5-Server-DVD]
    name=Red Hat Enterprise Linux $releasever - $basearch (DVD)
    baseurl=http://<ip_address>/cdrom/
    enabled=1
    gpgcheck=1 
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    
    • RHEL5Cluster および Cluster Storage パッケージをインストール/更新する場合は、/etc/yum.repos.d/dvd.repo ファイルに以下の行を追加します。
    # cat /etc/yum.repos.d/dvd.repo
    [RHEL5-Cluster]
    name=Red Hat Enterprise Linux Cluster
    baseurl=http://<ip_address>/cdrom/Cluster
    enabled=1
    gpgcheck=1 
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    
    [RHEL5-ClusterStorage]
    name=Red Hat Enterprise Linux - ClusterStorage
    baseurl=http://<ip_address>/cdrom/ClusterStorage
    enabled=1
    gpgcheck=1 
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    
    • RHEL6HighAvailability および ResilientStorage パッケージを更新する場合は、/etc/yum.repos.d/dvd.repo ファイルに以下の行を追加します。
    # cat /etc/yum.repos.d/dvd.repo
    [RHEL6-HighAvailability]
    name=Red Hat Enterprise Linux HighAvailability
    baseurl=http://<ip_address>/cdrom/HighAvailability
    enabled=1
    gpgcheck=1 
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    
    [RHEL6-ResilientStorage]
    name=Red Hat Enterprise Linux - ResilientStorage
    baseurl=http://<ip_address>/cdrom/ResilientStorage
    enabled=1
    gpgcheck=1 
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    
  • クライアント設定を確認します。

    # yum clean all
    # yum repolist
    [...]
    RHEL5-Server-DVD             | 1.5 kB     00:00     
    RHEL5-Server-DVD/primary     | 920 kB     00:00     
    RHEL5-Server-DVD                               3285/3285
    
    repo id          repo name       status
    
    RHEL5-Server-DVD Red Hat Enterprise Linux 5Server - x86_64 (DVD)    3,285
               repolist: 3,285
    
  • クライアントを更新します。

    # yum update
    
キックスタートインストール用の HTTPD ソース:
  1. httpd パッケージをインストールします。インストールされている場合は、この手順をスキップします。

    #  yum install httpd
    
  2. /var/www/html/rhel6/ ディレクトリーを作成します。作成されている場合は、この手順をスキップします。

    #  mkdir /var/www/html/rhel6/
    
  3. RHEL DVD を DVD ドライブに挿入し、/mnt の下にマウントします。

    #  mount /dev/sr0 /mnt
    
  4. 次に、シェルを作成して、すべてのコンテンツを /var/www/html/rhel6/ ディレクトリーにコピーします。

    #  shopt -s dotglob
    #  cp -apvrf /mnt/* /var/www/html/rhel6/
    
  5. サービスを開始し、chkconfig でサービスをオンにします。

    #  service httpd restart;chkconfig httpd on
    
  6. 次に、キックスタートファイルで次の URL を使用します。インストールは http ソースを通じて実行されます。

    url --url=http://<ip>/rhel6/
    

Red Hat Enterprise Linux 8 と 9 の場合、DVD ISO で設定する必要があるリポジトリーが 2 つある点が唯一の違いです。

手順は次のようになります。

  • Red Hat Enterprise Linux 8/9 DVD ISO を次のようにマウントします。

    # mount -o loop  rhel-8.0-x86_64-dvd.iso /mnt
    
  • すべてのデータを /var/www/html/ または任意のローカルディレクトリーにコピーします。

    # shopt -s dotglob
    # cp -avRpf /mnt/* /var/www/html/
    
  • クライアント用に次のように .repo ファイルを作成します。RHEL 9 .repo エントリーに適切な 'name' ラベルを選択します。

    # cat /etc/yum.repos.d/BaseOS.repo
    [BaseOS]
    name=Red Hat Enterprise Linux 8.0 BaseOS
    enabled=1
    gpgcheck=1
    baseurl=http://<Server-IP>/BaseOS/
    
    # cat /etc/yum.repos.d/AppStream.repo
    [AppStream]
    name=Red Hat Enterprise Linux 8.0 AppStream
    enabled=1
    gpgcheck=1
    baseurl=http://<Server-IP>/AppStream/
    
  • 既存の yum/dnf cache を消去し、クライアント側で更新されたリポジトリーリストを取得します。

    # dnf clean all
    # rm -rf /var/cache/yum/*
    # dnf makecache
    # dnf repolist
    

Root Cause

Diagnostic Steps

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments