2.4. ベースオペレーティングシステムのデータボリュームの作成
コントローラー仮想マシン (VM) のベースオペレーティングシステムイメージを保存するには、Red Hat OpenShift Container Platform (RHOCP) クラスターを使用してデータボリュームを作成する必要があります。OpenStackControlPlane
および OpenStackVmSet
カスタムリソースを作成するときに、baseImageVolumeName
パラメーターを使用してこのデータボリュームを指定します。
前提条件
virtctl
クライアントツールがワークステーションにインストールされます。このツールを Red Hat Enterprise Linux (RHEL) ワークステーションにインストールするには、次のコマンドを使用します。$ sudo subscription-manager repos --enable=cnv-4.12-for-rhel-8-x86_64-rpms $ sudo dnf install -y kubevirt-virtctl
virt-customize
クライアントツールがワークステーションにインストールされます。このツールを RHEL ワークステーションにインストールするには、次のコマンドを使用します。$ dnf install -y libguestfs-tools-c
手順
- Red Hat Customer Portal の 製品ダウンロード セクションから RHEL 9.2 QCOW2 イメージをワークステーションにダウンロードします。
オプション: カスタム CA 証明書を追加します。
$ sudo -s $ export LIBGUESTFS_BACKEND=direct $ virt-copy-in -a <local_path_to_image> <ca_certificate>.pem /etc/pki/ca-trust/source/anchors/
Identity Service の LDAP 通信を保護したり、RHOSP 以外のシステムと通信したりするために、カスタム CA 証明書を追加することができます。
イメージをカスタマイズして、予測可能なネットワークインターフェイス名を割り当てるスクリプトを作成します。
#!/bin/bash set -eux if [ -e /etc/kernel/cmdline ]; then echo 'Updating /etc/kernel/cmdline' sed -i -e "s/^\(.*\)net\.ifnames=0\s*\(.*\)/\1\2/" /etc/kernel/cmdline fi source /etc/default/grub if grep -q "net.ifnames=0" <<< "$GRUB_CMDLINE_LINUX"; then echo 'Updating /etc/default/grub' sed -i -e "s/^\(GRUB_CMDLINE_LINUX=.*\)net\.ifnames=0\s*\(.*\)/\1\2/" /etc/default/grub fi if [ "$GRUB_ENABLE_BLSCFG" == "true" ]; then echo 'Fixing BLS entries' find /boot/loader/entries -type f -exec sed -i -e "s/^\(.*\)net\.ifnames=0\s*\(.*\)/\1\2/" {} \; fi # Always do this, on RHEL8 with BLS we still need it as the BLS entry uses $kernelopts from grubenv echo 'Running grub2-mkconfig' grub2-mkconfig -o /etc/grub2.cfg grub2-mkconfig -o /etc/grub2-efi.cfg rm -f /etc/sysconfig/network-scripts/ifcfg-ens* /etc/sysconfig/network-scripts/ifcfg-eth* update-ca-trust extract
イメージのカスタマイズスクリプトを実行します。
$ sudo -s $ export LIBGUESTFS_BACKEND=direct $ chmod 755 customize_image.sh $ virt-customize -a <local_path_to_image> --run customize_image.sh --truncate /etc/machine-id
virtctl
を使用してイメージを OpenShift Virtualization にアップロードします。$ virtctl image-upload dv <datavolume_name> -n openstack \ --size=<size> --image-path=<local_path_to_image> \ --storage-class <storage_class> --access-mode <access_mode> --insecure
-
<datavolume_name>
をデータボリュームの名前 (例:openstack-base-img
) に置き換えます。 -
<size>
を、環境に必要なデータボリュームのサイズ (たとえば、500Gi
) に置き換えます。最小サイズは 500 GB です。 <storage_class>
をクラスターの必要なストレージクラスに置き換えます。次のコマンドを使用して、利用可能なストレージクラスを取得します。$ oc get storageclass
-
<access_mode>
を、PVC のアクセスモードに置き換えます。デフォルト値はReadWriteOnce
です。
-
次のステップ