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 ファイル内にあります。

前提条件

手順

イメージを抽出して 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) にイメージをアップロードします。

前提条件

手順

  1. カスタマーポータル から Red Hat Enterprise Linux KVM ゲストイメージをダウンロードします。
  2. DIB_LOCAL_IMAGE をダウンロードしたイメージとして定義します。

    $ export DIB_LOCAL_IMAGE=rhel-8.0-x86_64-kvm.qcow2
  3. 登録情報を設定します。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>
  4. diskimage-builder ツールを使用してユーザーイメージを作成します。

    $ export DIB_RELEASE=8
    $ disk-image-create rhel baremetal -o rhel-image

    このコマンドにより、カーネルは rhel-image.vmlinuz として、初期 ramdisk は rhel-image.initrd として、それぞれ抽出されます。

  5. イメージを 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