ちょっと構築する機会があったのでメモ。
OSのインストール
インストール用のisoファイルを入手し、これは普通に。
メディアから起動し、OSのインストールを行う。
お試しとして、今回は最小構成設定のインストール。
今回の環境は、ESXi上のVMで、CPUは2コア・メモリ8GBで、閉塞ネットワークには繋がっている状態。
(インターネットへの接続は無し)
サブスクリプション割り当て
オフライン環境のサブスクリプション割り当ての手順はこちら。
大まかな流れは、以下の通り。
- カスタマポータル上で手動でシステムを登録
- 証明書をダウンロード
- ダウンロードした証明書をオフラインRHELで
subscription-manager
で登録
カスタマポータル上でシステム登録
インターネット接続できるPCのブラウザでカスタマポータルへアクセスし、システムの画面で、「新規作成」を押下。
システム情報の入力画面になるので、ホスト名やCPU数などの項目を入力。
今回はVMなので仮想システムを選択。
システムを作成すると、サブスクリプションのアタッチボタンが表示されるので押下。
割り当て可能なサブスクリプションがチェックできるようになるので、使用するサブスクリプションをチェックして「サブスクリプションのアタッチ」を押下
証明書をダウンロードできる画面に遷移するので、「証明書のダウンロード」を押下。
これで証明書ファイル(pem形式)を含むzipファイルがダウンロードできる。
このzipファイルまたは展開したpemファイルをサブスクリプション登録したいRHELへ転送する。
証明書ファイルを使ったサブスクリプション登録
ファイルシステム上にダウンロードしたpemファイルを配置し、subscription-manager import --certificate
コマンドを使ってインポートする。
複数のサブスクリプション割り当ての場合は、ファイル数分実行すればOK
[root@rhel8-restricted ~]# subscription-manager import --certificate /tmp/4199243939243262298.pem 証明書 4199243939243262298.pem は正常にインポートされました [root@rhel8-restricted ~]# subscription-manager import --certificate /tmp/8034611573323406627.pem 証明書 8034611573323406627.pem は正常にインポートされました [root@rhel8-restricted ~]#
Yumリポジトリ設定
デフォルトのリポジトリの無効化
オフライン環境でセットアップしたRHELでも、デフォルトでは https://cdn.redhat.com/
のリポジトリを見に行くように設定されているので、これを無効にする。
[root@rhel8-restricted etc]# dnf repolist サブスクリプション管理リポジトリーを更新しています。 コンシューマー識別子を読み込めません repo id repo の名前 rhel-8-for-x86_64-appstream-rpms Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) rhel-8-for-x86_64-baseos-rpms Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs) [root@rhel8-restricted etc]# dnf config-manager --disable rhel-8-for-x86_64-appstream-rpms rhel-8-for-x86_64-baseos-rpms サブスクリプション管理リポジトリーを更新しています。 コンシューマー識別子を読み込めません
ISOイメージ内のパッケージファイルをYumリポジトリとして利用する
マウント
まずはDVDのマウント。
ESXiの場合で、ホストの設定としてデータストアのISOファイルを使用する設定にしてる場合であれば、/etc/fstab
に以下設定を追加しておき、mount -a
やmount /mnt/cdrom
でメディアをマウントする。
/dev/cdrom /mnt/cdrom iso9660 loop 0 0
[root@rhel8-restricted ~]# ls -F /mnt/cdrom/ AppStream/ EULA RPM-GPG-KEY-redhat-release images/ BaseOS/ GPL TRANS.TBL isolinux/ EFI/ RPM-GPG-KEY-redhat-beta extra_files.json media.repo
ISOファイルがファイルシステム上にある場合は、/dev/cdrom
のところをファイルシステム上のパスに置き換えればOK
/path/to/rhel-8.6-x86_64-dvd.iso /mnt/tmp iso9660 loop 0 0
mount
コマンドを使う場合は以下。
# mount -o loop /path/to/rhel-8.6-x86_64-dvd.iso /mnt/tmp
リポジトリ設定
ファイルを確認できたら、Yumのリポジトリ設定を行う。
ファイル名は任意なので、サンプルとして /etc/yum.repos.d/local.repo
ファイルを作成。内容は以下の通り。
これはマウントポイントが /mnt/cdrom
の場合。異なる場合は baseurl=
の行の設定を環境に合わせる。
[dvd-BaseOS] name=DVD for RHEL - BaseOS baseurl=file:///mnt/cdrom/BaseOS enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [dvd-AppStream] name=DVD for RHEL - AppStream baseurl=file:///mnt/cdrom/AppStream enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
最後にキャッシュをクリアする。
[root@rhel8-restricted ~]# yum clean all サブスクリプション管理リポジトリーを更新しています。 コンシューマー識別子を読み込めません 13 ファイルが削除されました
これでDVD内のパッケージをYumリポジトリとして参照できるようになるので、追加のパッケージインストールなどがあればdnf install
が可能になる。
[root@rhel8-restricted ~]# dnf repolist サブスクリプション管理リポジトリーを更新しています。 コンシューマー識別子を読み込めません repo id repo の名前 dvd-AppStream DVD for RHEL - AppStream dvd-BaseOS DVD for RHEL - BaseOS