4.4. ベアメタルイメージの作成
Bare Metal Provisioning サービス (ironic) が含まれるオーバークラウドには、2 つのイメージセットが必要です。デプロイメント時に、Bare Metal Provisioning サービスはデプロイイメージからベアメタルノードをブートし、ユーザーイメージをノードにコピーします。
- デプロイイメージ
-
Bare Metal Provisioning サービスはデプロイイメージを使用して、ベアメタルノードをブートしてユーザーイメージをベアメタルノードにコピーします。デプロイイメージは、
カーネル
イメージとramdisk
イメージで設定されます。 - ユーザーイメージ
ユーザーイメージは、ベアメタルノードにデプロイするイメージです。ユーザーイメージにも
カーネル
イメージとramdisk
イメージが含まれますが、追加でメイン
イメージも含まれます。メインイメージは、ルートパーティションイメージまたは完全なディスクイメージのいずれかです。- 完全なディスクイメージ は、パーティションテーブルとブートローダーを含むイメージです。完全なディスクイメージを使用してデプロイされたノードはローカルブートをサポートするので、Bare Metal Provisioning サービスはデプロイ後のノードのリブートは制御しません。
- ルートパーティションイメージ には、オペレーティングシステムのルートパーティションのみが含まれています。ルートパーティションを使用する場合には、デプロイイメージが Image サービスに読み込まれた後に、ノードのプロパティーにデプロイイメージをノードのブートイメージとして設定することができます。デプロイ後のノードのリブートでは、netboot を使用してユーザーイメージがプルダウンされます。
本項に記載する例では、ルートパーティションイメージを使用してベアメタルノードをプロビジョニングします。
4.4.1. デプロイイメージの準備
デプロイイメージを作成する必要はありません。アンダークラウドによるオーバークラウドのデプロイ時に、すでにデプロイイメージが作成されているためです。デプロイイメージは、以下に示したように、カーネルイメージと ramdisk イメージの 2 つのイメージで設定されます。
/tftpboot/agent.kernel /tftpboot/agent.ramdisk
これらのイメージは、削除したり他の場所でアンパックしたりしていない限りは、多くの場合、ホームディレクトリーにあります。ホームディレクトリーにない場合でも、rhosp-director-images-ipa
パッケージがインストールされているので、これらのイメージは /usr/share/rhosp-director-images/ironic-python-agent*.tar
ファイル内にあります。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
手順
イメージを抽出して Image サービスにアップロードします。
$ openstack image create \ --container-format aki \ --disk-format aki \ --public \ --file ./tftpboot/agent.kernel bm-deploy-kernel $ openstack image create \ --container-format ari \ --disk-format ari \ --public \ --file ./tftpboot/agent.ramdisk bm-deploy-ramdisk
4.4.2. ユーザーイメージの準備
最後に必要となるイメージは、ベアメタルノードにデプロイするユーザーイメージです。ユーザーイメージには、カーネルイメージと ramdisk イメージに加えて、メインイメージが含まれます。これらのパッケージをダウンロードしてインストールするには、まずご自分の要件に合わせて完全なディスクイメージの環境変数を設定する必要があります。
4.4.3. ユーザーイメージのインストール
ユーザーイメージを設定してから、Image サービス (glance) にイメージをアップロードします。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
手順
- カスタマーポータル から Red Hat Enterprise Linux KVM ゲストイメージをダウンロードします。
DIB_LOCAL_IMAGE
をダウンロードしたイメージとして定義します。$ export DIB_LOCAL_IMAGE=rhel-8.0-x86_64-kvm.qcow2
登録情報を設定します。Red Hat カスタマーポータルを使用する場合には、以下の情報を設定する必要があります。
$ export REG_USER='USER_NAME' $ export REG_PASSWORD='PASSWORD' $ export REG_AUTO_ATTACH=true $ export REG_METHOD=portal $ export https_proxy='IP_address:port' (if applicable) $ export http_proxy='IP_address:port' (if applicable)
Red Hat Satellite を使用する場合には、以下の情報を設定する必要があります。
$ export REG_USER='USER_NAME' $ export REG_PASSWORD='PASSWORD' $ export REG_SAT_URL='<SATELLITE URL>' $ export REG_ORG='<SATELLITE ORG>' $ export REG_ENV='<SATELLITE ENV>' $ export REG_METHOD=<METHOD>
オフラインのリポジトリーがある場合には、DIB_YUM_REPO_CONF をローカルリポジトリーの設定として定義することができます。
$ export DIB_YUM_REPO_CONF=<path-to-local-repository-config-file>
diskimage-builder
ツールを使用してユーザーイメージを作成します。$ export DIB_RELEASE=8 $ disk-image-create rhel baremetal -o rhel-image
このコマンドにより、カーネルは
rhel-image.vmlinuz
として、初期 ramdisk はrhel-image.initrd
として、それぞれ抽出されます。イメージを Image サービスにアップロードします。
$ KERNEL_ID=$(openstack image create \ --file rhel-image.vmlinuz --public \ --container-format aki --disk-format aki \ -f value -c id rhel-image.vmlinuz) $ RAMDISK_ID=$(openstack image create \ --file rhel-image.initrd --public \ --container-format ari --disk-format ari \ -f value -c id rhel-image.initrd) $ openstack image create \ --file rhel-image.qcow2 --public \ --container-format bare \ --disk-format qcow2 \ --property kernel_id=$KERNEL_ID \ --property ramdisk_id=$RAMDISK_ID \ rhel-image