2.3. 物理マシンをベアメタルノードとして追加する
インスタンスをプロビジョニングする物理マシンをノードとして追加し、Compute が利用可能なハードウェアを表示できることを確認します。Compute のリソーストラッカーは定期的に同期するため、コンピュートは新規リソースをすぐに通知しません。次の定期タスクが実行されると、変更が認識されるようになります。この値 scheduler_driver_task_period は、/etc/nova/nova.conf で更新することができます。デフォルトの間隔は 60 秒です。
システムがベアメタルノードとして登録されると、ハードウェアのイントロスペクションを使用してハードウェア情報を検出するか、手動で追加できます。
2.3.1. ハードウェアイントロスペクションを使用したノードの追加 リンクのコピーリンクがクリップボードにコピーされました!
物理マシンをベアメタルノードとして登録してから、openstack-ironic-inspector を使用してノードのハードウェアの詳細を検出し、各イーサネット MAC アドレスのポートを作成します。以下の手順は、すべて root ユーザーとしてログインし、Bare Metal Provisioning コンダクターサービスをホストするサーバーで実行する必要があります。
ハードウェアイントロスペクションを使用したノードの追加
Identity を管理ユーザーとして使用するためのシェルを設定します。
source ~/keystonerc_admin
# source ~/keystonerc_adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいノードを追加します。
ironic node-create -d DRIVER_NAME
# ironic node-create -d DRIVER_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow DRIVER_NAME は、Bare Metal Provisioning がこのノードのプロビジョニングに使用するドライバーの名前に置き換えます。/etc/ironic/ironic.conf ファイルで、このドライバーを有効にする必要があります。ノードを作成するには、少なくともドライバー名を指定する必要があります。
重要ノードの一意識別子を書き留めておきます。
ノードを論理名または UUID で参照できます。オプションで、論理名をノードに割り当てます。
ironic node-update NODE_UUID add name=NAME
# ironic node-update NODE_UUID add name=NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_UUID は、ノードの一意識別子に置き換えます。NAME は、ノードの論理名に置き換えます。
ドライバーが必要とするノード情報を確認してから、ノードドライバーの情報を更新して、Bare Metal Provisioning がノードを管理できるようにします。
ironic driver-properties DRIVER_NAME ironic node-update NODE_UUID add \ driver_info/PROPERTY=VALUE \ driver_info/PROPERTY=VALUE
# ironic driver-properties DRIVER_NAME # ironic node-update NODE_UUID add \ driver_info/PROPERTY=VALUE \ driver_info/PROPERTY=VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えます。
- DRIVER_NAME を、プロパティーを表示するドライバーの名前に置き換えます。/etc/ironic/ironic.conf ファイルでドライバーが有効でない限り、この情報は返されません。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
- PROPERTY は、ironic driver-properties コマンドで返された必要なプロパティーに置き換えます。
- VALUE は、プロパティーの有効な値に置き換えます。
ノードドライバーのデプロイカーネルとデプロイ ramdisk を指定します。
ironic node-update NODE_UUID add \ driver_info/deploy_kernel=KERNEL_UUID \ driver_info/deploy_ramdisk=INITRAMFS_UUID
# ironic node-update NODE_UUID add \ driver_info/deploy_kernel=KERNEL_UUID \ driver_info/deploy_ramdisk=INITRAMFS_UUIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
- KERNEL_UUID は、Image サービスにアップロードされた .kernel イメージの一意識別子に置き換えます。
- INITRAMFS_UUID は、Image サービスにアップロードされた .initramfs イメージの一意識別子に置き換えます。
PXE または仮想メディア経由ではなく、ノードのディスクにインストールされたローカルのブートローダーから初回のデプロイ後にリブートするようにノードを設定します。ノードのプロビジョニングに使用するフレーバーでも、ローカルブートの機能を設定する必要があります。ローカルブートを有効にするには、ノードのデプロイに使用するイメージに grub2 が含まれている必要があります。ローカルブートを以下のように設定します。
ironic node-update NODE_UUID add \ properties/capabilities="boot_option:local"
# ironic node-update NODE_UUID add \ properties/capabilities="boot_option:local"Copy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
ベアメタルノードを
manageable状態に移行します。ironic node-set-provision-state NODE_UUID manage
# ironic node-set-provision-state NODE_UUID manageCopy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
イントロスペクションを開始します。
openstack baremetal introspection start NODE_UUID --discoverd-url http://overcloud IP:5050
# openstack baremetal introspection start NODE_UUID --discoverd-url http://overcloud IP:5050Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。ノードをプロビジョニングする前に、ノードの検出およびイントロスペクションのプロセスが完了するまで実行する必要があります。ノードのイントロスペクションのステータスを確認するには、ironic node-list を実行し、
Provision Stateを探します。イントロスペクションが成功した後、ノードはavailableの状態になります。 -
overcloud IP を、ironic.conf で以前に設定した
service_url値に置き換えます。
-
NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。ノードをプロビジョニングする前に、ノードの検出およびイントロスペクションのプロセスが完了するまで実行する必要があります。ノードのイントロスペクションのステータスを確認するには、ironic node-list を実行し、
ノードの設定を検証します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。上記のコマンドの出力には、各インターフェイスが
TrueまたはNoneのいずれかと報告されるはずです。Noneとマークされたインターフェイスは、設定していないか、ドライバーがサポートしていないインターフェイスです。
2.3.2. ノードを手動で追加する リンクのコピーリンクがクリップボードにコピーされました!
物理マシンをベアメタルノードとして登録してから、手動でハードウェア情報を追加し、各イーサネットの MAC アドレス用にポートを作成します。以下の手順は、すべて root ユーザーとしてログインし、Bare Metal Provisioning コンダクターサービスをホストするサーバーで実行する必要があります。
ハードウェアイントロスペクションなしでノードを追加する
Identity を管理ユーザーとして使用するためのシェルを設定します。
source ~/keystonerc_admin
# source ~/keystonerc_adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいノードを追加します。
ironic node-create -d DRIVER_NAME
# ironic node-create -d DRIVER_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow DRIVER_NAME は、Bare Metal Provisioning がこのノードのプロビジョニングに使用するドライバーの名前に置き換えます。/etc/ironic/ironic.conf ファイルで、このドライバーを有効にする必要があります。ノードを作成するには、少なくともドライバー名を指定する必要があります。
重要ノードの一意識別子を書き留めておきます。
ノードを論理名または UUID で参照できます。オプションで、論理名をノードに割り当てます。
ironic node-update NODE_UUID add name=NAME
# ironic node-update NODE_UUID add name=NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_UUID は、ノードの一意識別子に置き換えます。NAME は、ノードの論理名に置き換えます。
ドライバーが必要とするノード情報を確認してから、ノードドライバーの情報を更新して、Bare Metal Provisioning がノードを管理できるようにします。
ironic driver-properties DRIVER_NAME ironic node-update NODE_UUID add \ driver_info/PROPERTY=VALUE \ driver_info/PROPERTY=VALUE
# ironic driver-properties DRIVER_NAME # ironic node-update NODE_UUID add \ driver_info/PROPERTY=VALUE \ driver_info/PROPERTY=VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えます。
- DRIVER_NAME を、プロパティーを表示するドライバーの名前に置き換えます。/etc/ironic/ironic.conf ファイルでドライバーが有効でない限り、この情報は返されません。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
- PROPERTY は、ironic driver-properties コマンドで返された必要なプロパティーに置き換えます。
- VALUE は、プロパティーの有効な値に置き換えます。
ノードドライバーのデプロイカーネルとデプロイ ramdisk を指定します。
ironic node-update NODE_UUID add \ driver_info/deploy_kernel=KERNEL_UUID \ driver_info/deploy_ramdisk=INITRAMFS_UUID
# ironic node-update NODE_UUID add \ driver_info/deploy_kernel=KERNEL_UUID \ driver_info/deploy_ramdisk=INITRAMFS_UUIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
- KERNEL_UUID は、Image サービスにアップロードされた .kernel イメージの一意識別子に置き換えます。
- INITRAMFS_UUID は、Image サービスにアップロードされた .initramfs イメージの一意識別子に置き換えます。
ノードのプロパティーを更新して、ノード上のハードウェアの仕様と一致するようにします。
ironic node-update NODE_UUID add \ properties/cpus=CPU \ properties/memory_mb=RAM_MB \ properties/local_gb=DISK_GB \ properties/cpu_arch=ARCH
# ironic node-update NODE_UUID add \ properties/cpus=CPU \ properties/memory_mb=RAM_MB \ properties/local_gb=DISK_GB \ properties/cpu_arch=ARCHCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
- CPU は、使用する CPU の数に置き換えます。
- RAM_MB を使用する RAM (MB 単位)に置き換えます。
- DISK_GB は、使用するディスクサイズ(GB 単位)に置き換えます。
- ARCH は、使用するアーキテクチャータイプに置き換えます。
PXE または仮想メディア経由ではなく、ノードのディスクにインストールされたローカルのブートローダーから初回のデプロイ後にリブートするようにノードを設定します。ノードのプロビジョニングに使用するフレーバーでも、ローカルブートの機能を設定する必要があります。ローカルブートを有効にするには、ノードのデプロイに使用するイメージに grub2 が含まれている必要があります。ローカルブートを以下のように設定します。
ironic node-update NODE_UUID add \ properties/capabilities="boot_option:local"
# ironic node-update NODE_UUID add \ properties/capabilities="boot_option:local"Copy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
ノード上のネットワークインターフェイスカードを Bare Metal Provisioning に通知します。各 NIC の MAC アドレスでポートを作成します。
ironic port-create -n NODE_UUID -a MAC_ADDRESS
# ironic port-create -n NODE_UUID -a MAC_ADDRESSCopy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_UUID は、ノードの一意識別子に置き換えます。MAC_ADDRESS は、ノード上の NIC の MAC アドレスに置き換えます。
ノードの設定を検証します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。上記のコマンドの出力には、各インターフェイスが
TrueまたはNoneのいずれかと報告されるはずです。Noneとマークされたインターフェイスは、設定していないか、ドライバーがサポートしていないインターフェイスです。