2.5. 例:SSH と Virsh を使用したベアメタルプロビジョニングのテスト


単一の物理ホストにベアメタルノードとして機能する 2 つの仮想マシンにインスタンスをデプロイすることで、Bare Metal Provisioning 設定をテストします。どちらの仮想マシンも、libvirtvirsh を使用して仮想化されます。

重要

SSH ドライバーは、テストおよび評価の目的でのみ利用いただけます。Red Hat OpenStack Platform のエンタープライズ環境には推奨していません。

このシナリオでは、以下のリソースが必要です。

  • オーバークラウドノードに設定された Bare Metal Provisioning サービスが含まれる Red Hat OpenStack Platform 環境。本ガイドのすべての手順を完了している必要があります。
  • Red Hat Enterprise Linux 7.2 および libvirt 仮想化ツールを使用するベアメタルマシン 1 台このシステムは、仮想ベアメタルノードを含むホストとして機能します。
  • Bare Metal Provisioning ノードと仮想ベアメタルノードを含むホスト間のネットワーク接続 1 つ。このネットワークは、ベアメタルプロビジョニングネットワークとして機能します。

2.5.1. 仮想ベアメタルノードの作成

テストシナリオで、ベアメタルノードとして機能する 2 台の仮想マシンを作成します。ノードは Node1 および Node2 と呼ばれます。

仮想ベアメタルノードの作成

  1. libvirt ホストから Virtual Machine Manager にアクセスします。
  2. 以下の設定で 2 台の仮想マシンを作成します。

    • 1 vCPU
    • 2048 MB のメモリー
    • ネットワーク起動 (PXE)
    • 20 GB のストレージ
    • ネットワークソース:ホストデバイスの eth0:および ソースモード:Bridge⚙ を選択すると、仮想マシンがホストのイーサネットネットワークインターフェイスを共有するように設定されます。これにより、Bare Metal Provisioning ノードが仮想化ノードに直接アクセスできるようになります。
  3. 両方の仮想マシンをシャットダウンします。

2.5.2. SSH キーペアの作成

Bare Metal Provisioning ノードが libvirt ホストに接続できるようにする SSH キーペアを作成します。

SSH キーペアの作成

  1. Bare Metal Provisioning ノードで、新しい SSH キーを作成します。

    # ssh-keygen -t rsa -b 2048 -C "user@domain.com" -f ./virtkey
    Copy to Clipboard Toggle word wrap

    user@domain.com を、この鍵を識別するメールアドレスまたはその他のコメントに置き換えます。コマンドがパスフレーズの入力を求めたら、Enter キーを押してパスフレーズなしで続行します。このコマンドは、秘密鍵(virtkey)と公開鍵(virtkey.pub)の 2 つのファイルを作成します。

  2. 公開鍵のコンテンツを、libvirt ホストの root ユーザーの /root/.ssh/authorized_keys ファイルにコピーします。

    # ssh-copy-id -i virtkey root@LIBVIRT_HOST
    Copy to Clipboard Toggle word wrap

    LIBVIRT_HOST は、libvirt ホストの IP アドレスまたはホスト名に置き換えます。

秘密鍵(virtkey)は、ノードの登録時に使用されます。

2.5.3. 仮想ノードのベアメタルノードとしての追加

インスタンスをプロビジョニングするノードとして追加します。この例では、ドライバーの詳細を手動で提供し、ハードウェアイントロスペクションを使用してノードの情報を検出します。ノードの詳細は、ノードごとに手動で追加することもできます。詳細は、「ノードを手動で追加する」 を参照してください。

ベアメタルノードとしての仮想ノードの追加

  1. Bare Metal Provisioning コンダクターサービスノードで、pxe_ssh ドライバーを有効にします。

    # openstack-config --set /etc/ironic/ironic.conf \
       DEFAULT enabled_drivers pxe_ssh
    Copy to Clipboard Toggle word wrap

    既存のドライバーのリストに pxe_ssh を追加する場合は、ファイルを開いて、そのドライバーをコンマで区切って enabled_drivers のリストに追加します。

  2. Identity を管理ユーザーとして使用するためのシェルを設定します。

    # source ~/keystonerc_admin
    Copy to Clipboard Toggle word wrap
  3. 最初のノードを追加し、libvirt ホストの SSH の詳細を登録します。

    # ironic node-create -d pxe_ssh -n Node1 \
       -i ssh_virt_type=virsh \
       -i ssh_username=root \
       -i ssh_key_filename=VIRTKEY_FILE_PATH \
       -i ssh_address=LIBVIRT_HOST_IP \
       -i deploy_kernel=KERNEL_UUID \
       -i deploy_ramdisk=INITRAMFS_UUID
    Copy to Clipboard Toggle word wrap

    以下の値を置き換えます。

    • VIRTKEY_FILE_PATH は、virtkey SSH 秘密鍵ファイルの絶対ファイルパスに置き換えます。
    • LIBVIRT_HOST_IP は、libvirt ホストの IP アドレスまたはホスト名に置き換えます。
    • KERNEL_UUID は、Image サービスにアップロードされた .kernel イメージの一意識別子に置き換えます。
    • INITRAMFS_UUID は、Image サービスにアップロードされた .initramfs イメージの一意識別子に置き換えます。
  4. 上記と同じコマンドを使用して 2 番目のノードを追加し、Node1Node2 に置き換えます。
  5. PXE または仮想メディア経由ではなく、ノードのディスクにインストールされたローカルのブートローダーから初回のデプロイ後にリブートするようにノードを設定します。ノードのプロビジョニングに使用するフレーバーでも、ローカルブートの機能を設定する必要があります。ローカルブートを有効にするには、ノードのデプロイに使用するイメージに grub2 が含まれている必要があります。ローカルブートを以下のように設定します。

    # ironic node-update Node1 add \
       properties/capabilities="boot_option:local"
    # ironic node-update Node2 add \
       properties/capabilities="boot_option:local"
    Copy to Clipboard Toggle word wrap
  6. ノードを manageable 状態に移行します。

    # ironic node-set-provision-state Node1 manage
    # ironic node-set-provision-state Node2 manage
    Copy to Clipboard Toggle word wrap
  7. ノードのイントロスペクションを開始します。

    # ironic node-set-provision-state Node1 inspect
    # ironic node-set-provision-state Node2 inspect
    Copy to Clipboard Toggle word wrap

    ノードをプロビジョニングする前に、ノードの検出およびイントロスペクションのプロセスが完了するまで実行する必要があります。ノードのイントロスペクションのステータスを確認するには、ironic node-list を実行し、Provision State を探します。ノードは、イントロスペクションが成功した後、available の状態になります。

  8. ノードの設定を検証します。

    # ironic node-validate Node1
    # ironic node-validate Node2
    +------------+--------+----------------------------+
    | Interface  | Result | Reason                     |
    +------------+--------+----------------------------+
    | console    | None   | not supported              |
    | deploy     | True   |                            |
    | inspect    | True   |                            |
    | management | True   |                            |
    | power      | True   |                            |
    +------------+--------+----------------------------+
    Copy to Clipboard Toggle word wrap

    上記のコマンドの出力には、各インターフェイスが True または None のいずれかと報告されるはずです。None とマークされたインターフェイスは、設定していないか、ドライバーがサポートしていないインターフェイスです。

  9. ノードが正常に追加されたら、3章ベアメタルインスタンスの起動 を使用して 2 つのインスタンスを起動します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat