第5章 ベアメタルノードの管理
本章では、登録済みのベアメタルノードで物理マシンをプロビジョニングする方法について説明します。インスタンスは、コマンドラインまたは OpenStack Dashboard で起動することができます。
5.1. コマンドラインインターフェースを使用したインスタンスの起動
openstack コマンドを使用してベアメタルインスタンスをデプロイします。
コマンドライン上でのインスタンスのデプロイ
Identity に管理ユーザーとしてアクセスするためのシェルを設定します。
$ source ~/overcloudrc
インスタンスをデプロイします。
$ openstack server create \ --nic net-id=NETWORK_UUID \ --flavor baremetal \ --image IMAGE_UUID \ INSTANCE_NAME
以下の値を置き換えてください。
- NETWORK_UUID は、Bare Metal サービスで使用するために作成したネットワークの一意識別子に置き換えます。
- IMAGE_UUID は、Image サービスにアップロードされているディスクイメージの一意識別子に置き換えます。
- INSTANCE_NAME は、ベアメタルインスタンスの名前に置き換えます。
セキュリティーグループにインスタンスを割り当てるには、
--security-group SECURITY_GROUPオプションを指定します。SECURITY_GROUP は、そのセキュリティーグループの名前に置き換えてください。インスタンスを複数のグループに追加するには、このオプションを繰り返します。 セキュリティーグループの管理に関する詳しい情報は、『Users and Identity Management Guide』を参照してください。インスタンスのステータスを確認します。
$ openstack server list --name INSTANCE_NAME
5.2. Dashboard を使用したインスタンスの起動
Dashboard のグラフィカルユーザーインターフェースを使用してベアメタルインスタンスをデプロイします。
Dashboard でのインスタンスのデプロイ
- http[s]://DASHBOARD_IP/dashboard で Dashboard にログインします。
- プロジェクト > コンピュート > インスタンス をクリックします。
インスタンスの起動 をクリックします。
-
詳細 タブで インスタンス名 を指定して、インスタンス数 に
1を選択します。 -
ソース タブで ブートソースを選択してください のドロップダウンメニューから
イメージを選択して、+(プラス) の記号をクリックしてオペレーティングシステムのディスクイメージを選択します。選択したイメージは 割り当て済み に移動します。 -
フレーバー タブで
baremetalを選択します。 -
ネットワーク タブで、
+(プラス) および-(マイナス) ボタンを使用して必要なネットワークを 利用可能 から 割り当て済み に移動します。ここでは、Bare Metal サービス用に作成した共有ネットワークを必ず選択してください。 - インスタンスをセキュリティーグループに割り当てるには、セキュリティーグループ のタブで矢印を使用してそのグループを 割り当て済み に移動します。
-
詳細 タブで インスタンス名 を指定して、インスタンス数 に
- インスタンスの起動 をクリックします。
5.3. Bare Metal Provisioning サービスでのポートグループの設定
ベアメタルノード向けのポートグループ機能は、本リリースではテクノロジープレビューとして提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト目的のみでご利用いただく機能で、実稼働環境にデプロイすべきではありません。 テクノロジープレビューについての詳しい情報は 「対象範囲の詳細」を参照してください。
ポートグループ (ボンディング) の機能は、複数のネットワークインターフェースを単一の「ボンディングされた」インターフェースに統合する方法を提供します。ポートグループの設定は常に、個別のポート設定に優先します。
ポートグループに物理ネットワークがある場合には、そのポートグループ内の全ポートに同じ物理ネットワークを使用すべきです。Bare Metal Provisioning サービスは、configdrive を使用するインスタンスでのポートグループの設定をサポートしています。
Bare Metal Provisioning サービス API バージョン 1.26 は、ポートグループの設定をサポートしています。
5.3.1. スイッチの設定
Bare Metal Provisioning デプロイメントでポートグループを設定するには、スイッチ上で手動設定する必要があります。スイッチ上のモードとプロパティーは、スイッチによって名前が異なる場合があるため、それらがベアメタル側のモードとプロパティーに対応していることを確認する必要があります。
iPXE を使用するデプロイメントを起動する必要がある場合には、プロビジョニングとクリーニングにはポートグループは使用できません。
ポートグループのフォールバック機能により、接続でエラーが発生した際に、1 つのポートグループ内の全ポートを個々のスイッチポートにフォールバックさせることができます。スイッチがポートグループのフォールバックをサポートしているかどうかに応じて、「--support-standalone-ports」と「--unsupport-standalone-ports」のオプションを使用することができます。
5.3.2. Bare Metal Provisioning サービスでのポートグループの設定
ポートグループが属する先のノード、その名前、アドレス、モード、プロパティー、スタンドアロンポートへのフォールバックをサポートしているかどうかを指定して、ポートグループを作成します。
# openstack baremetal port group create --node NODE_UUID --name NAME --address MAC_ADDRESS --mode MODE --property miimon=100 --property xmit_hash_policy="layer2+3" --support-standalone-ports
また、
openstack baremetal port group setコマンドを使用してポートグループを更新することもできます。アドレスを指定しない場合には、デプロイされるインスタンスのポートグループアドレスは OpenStack Networking のポートと同じになります。
neutronポートが接続されていない場合には、ポートグループは設定されません。インターフェースの接続中には、ポートグループの優先度はポートよりも高くなるので、最初に使用されます。現在、インターフェースの接続要求で、ポートグループとポートのどちらを優先するかを指定することは できません。ポートのないポートグループは無視されます。
注記ポートグループは、イメージ内で手動でスタンドアロンモードに設定するか、
configdriveを生成してノードのinstance_infoに追加して設定する必要があります。 ポートグループの設定が機能するには、cloud-initバージョンが 0.7.7 以降であることを確認してください、ポートをポートグループに関連付けます。
ポートの作成中
# openstack baremetal port create --node NODE_UUID --address MAC_ADDRESS --port-group test
ポートの更新中
# openstack baremetal port set PORT_UUID --port-group PORT_GROUP_UUID
cloud-init対応のイメージまたはボンディングをサポートしているイメージを提供することにより、インスタンスを起動します。ポートグループが適切に設定されているかを確認するには、以下のコマンドを実行します。
# cat /proc/net/bonding/bondX
Xは、cloud-initが設定済みの各ポートグループに対して自動生成する番号です。0で開始し、設定済みポートグループごとに 1 つずつ増えます。
5.4. ホストから IP アドレスへのマッピングの確認
以下のコマンドを実行すると、各 IP アドレスが割り当てられているホストおよびベアメタルノードを確認できます。
この機能により、ホストに直接アクセスする必要なく、ホストから IP へのマッピングをアンダークラウドで確認することが可能です。
(undercloud) [stack@host01 ~]$ openstack stack output show overcloud HostsEntry --max-width 80 +--------------+---------------------------------------------------------------+ | Field | Value | +--------------+---------------------------------------------------------------+ | description | The content that should be appended to your /etc/hosts if you | | | want to get | | | hostname-based access to the deployed nodes (useful for | | | testing without | | | setting up a DNS). | | | | | output_key | HostsEntry | | output_value | 172.17.0.10 overcloud-controller-0.localdomain overcloud- | | | controller-0 | | | 10.8.145.18 overcloud-controller-0.external.localdomain | | | overcloud-controller-0.external | | | 172.17.0.10 overcloud-controller-0.internalapi.localdomain | | | overcloud-controller-0.internalapi | | | 172.18.0.15 overcloud-controller-0.storage.localdomain | | | overcloud-controller-0.storage | | | 172.21.2.12 overcloud-controller-0.storagemgmt.localdomain | | | overcloud-controller-0.storagemgmt | | | 172.16.0.15 overcloud-controller-0.tenant.localdomain | | | overcloud-controller-0.tenant | | | 10.8.146.13 overcloud-controller-0.management.localdomain | | | overcloud-controller-0.management | | | 10.8.146.13 overcloud-controller-0.ctlplane.localdomain | | | overcloud-controller-0.ctlplane | | | | | | 172.17.0.21 overcloud-compute-0.localdomain overcloud- | | | compute-0 | | | 10.8.146.12 overcloud-compute-0.external.localdomain | | | overcloud-compute-0.external | | | 172.17.0.21 overcloud-compute-0.internalapi.localdomain | | | overcloud-compute-0.internalapi | | | 172.18.0.20 overcloud-compute-0.storage.localdomain | | | overcloud-compute-0.storage | | | 10.8.146.12 overcloud-compute-0.storagemgmt.localdomain | | | overcloud-compute-0.storagemgmt | | | 172.16.0.16 overcloud-compute-0.tenant.localdomain overcloud- | | | compute-0.tenant | | | 10.8.146.12 overcloud-compute-0.management.localdomain | | | overcloud-compute-0.management | | | 10.8.146.12 overcloud-compute-0.ctlplane.localdomain | | | overcloud-compute-0.ctlplane | | | | | | | | | | | | | | | 10.8.145.16 overcloud.localdomain | | | 10.8.146.7 overcloud.ctlplane.localdomain | | | 172.17.0.19 overcloud.internalapi.localdomain | | | 172.18.0.19 overcloud.storage.localdomain | | | 172.21.2.16 overcloud.storagemgmt.localdomain | +--------------+---------------------------------------------------------------+
特定のホストをフィルターするには、以下のコマンドを実行します。
(undercloud) [stack@host01 ~]$ openstack stack output show overcloud HostsEntry -c output_value -f value | grep overcloud-controller-0 172.17.0.12 overcloud-controller-0.localdomain overcloud-controller-0 10.8.145.18 overcloud-controller-0.external.localdomain overcloud-controller-0.external 172.17.0.12 overcloud-controller-0.internalapi.localdomain overcloud-controller-0.internalapi 172.18.0.12 overcloud-controller-0.storage.localdomain overcloud-controller-0.storage 172.21.2.13 overcloud-controller-0.storagemgmt.localdomain overcloud-controller-0.storagemgmt 172.16.0.19 overcloud-controller-0.tenant.localdomain overcloud-controller-0.tenant 10.8.146.13 overcloud-controller-0.management.localdomain overcloud-controller-0.management 10.8.146.13 overcloud-controller-0.ctlplane.localdomain overcloud-controller-0.ctlplane
ホストをベアメタルノードにマッピングするには、以下のコマンドを実行します。
(undercloud) [stack@host01 ~]$ openstack baremetal node list --fields uuid name instance_info -f json
[
{
"UUID": "c0d2568e-1825-4d34-96ec-f08bbf0ba7ae",
"Instance Info": {
"root_gb": "40",
"display_name": "overcloud-compute-0",
"image_source": "24a33990-e65a-4235-9620-9243bcff67a2",
"capabilities": "{\"boot_option\": \"local\"}",
"memory_mb": "4096",
"vcpus": "1",
"local_gb": "557",
"configdrive": "******",
"swap_mb": "0",
"nova_host_id": "host01.lab.local"
},
"Name": "host2"
},
{
"UUID": "8c3faec8-bc05-401c-8956-99c40cdea97d",
"Instance Info": {
"root_gb": "40",
"display_name": "overcloud-controller-0",
"image_source": "24a33990-e65a-4235-9620-9243bcff67a2",
"capabilities": "{\"boot_option\": \"local\"}",
"memory_mb": "4096",
"vcpus": "1",
"local_gb": "557",
"configdrive": "******",
"swap_mb": "0",
"nova_host_id": "host01.lab.local"
},
"Name": "host3"
}
]5.5. 仮想ネットワークインターフェースのアタッチとデタッチ
Bare Metal Provisioning サービスには、仮想ネットワークインターフェース間のマッピングを管理するための API があります。たとえば、OpenStack Networking サービスで使用される仮想ネットワークインターフェースと物理ネットワークインターフェース (NIC) の間のマッピングに使用される API があります。これらのインターフェースは各 Bare Metal Provisioning ノードに対して設定可能で、openstack baremetal node vif* コマンドを使用して仮想ネットワークインターフェース (VIF) から物理ネットワークインターフェース (PIF) へのマッピングロジックを設定することができます。
以下の例では、VIF を接続/切断する手順を説明します。
ベアメタルノードに現在接続されている VIF の ID を一覧表示します。
$ openstack baremetal node vif list baremetal-0 +--------------------------------------+ | ID | +--------------------------------------+ | 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16 | +--------------------------------------+
VIF がアタッチされた後に、Bare Metal サービスは OpenStack Networking サービス内の仮想ポートを実際の物理ポートの MAC アドレスで更新します。
これは、以下のコマンドで確認できます。
$ openstack port show 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16 -c mac_address -c fixed_ips +-------------+-----------------------------------------------------------------------------+ | Field | Value | +-------------+-----------------------------------------------------------------------------+ | fixed_ips | ip_address='192.168.24.9', subnet_id='1d11c677-5946-4733-87c3-23a9e06077aa' | | mac_address | 00:2d:28:2f:8d:95 | +-------------+-----------------------------------------------------------------------------+
baremetal-0ノードを作成したネットワーク上に新規ポートを作成します。$ openstack port create --network baremetal --fixed-ip ip-address=192.168.24.24 baremetal-0-extra
インスタンスからポートを削除します。
$ openstack server remove port overcloud-baremetal-0 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16
その IP アドレスがリストには存在しなくなったことを確認します。
$ openstack server list
そのノードに接続されている VIF があるかどうかを確認します。
$ openstack baremetal node vif list baremetal-0 $ openstack port list
新規作成されたポートを追加します。
$ openstack server add port overcloud-baremetal-0 baremetal-0-extra
新しい IP アドレスに新しいポートが表示されることを確認します。
$ openstack server list +--------------------------------------+-------------------------+--------+------------------------+----------------+---------+ | ID | Name | Status | Networks | Image | Flavor | +--------------------------------------+-------------------------+--------+------------------------+----------------+---------+ | 53095a64-1646-4dd1-bbf3-b51cbcc38789 | overcloud-controller-2 | ACTIVE | ctlplane=192.168.24.7 | overcloud-full | control | | 3a1bc89c-5d0d-44c7-a569-f2a3b4c73d65 | overcloud-controller-0 | ACTIVE | ctlplane=192.168.24.8 | overcloud-full | control | | 6b01531a-f55d-40e9-b3a2-6d02be0b915b | overcloud-controller-1 | ACTIVE | ctlplane=192.168.24.16 | overcloud-full | control | | c61cc52b-cc48-4903-a971-073c60f53091 | overcloud-novacompute-0overcloud-baremetal-0 | ACTIVE | ctlplane=192.168.24.24 | overcloud-full | compute | +--------------------------------------+-------------------------+--------+------------------------+----------------+---------+
VIF ID が新規ポートの UUID であるかどうかを確認します。
$ openstack baremetal node vif list baremetal-0 +--------------------------------------+ | ID | +--------------------------------------+ | 6181c089-7e33-4f1c-b8fe-2523ff431ffc | +--------------------------------------+
OpenStack Networking ポートの MAC アドレスが更新され、Bare Metal サービスポートの中の 1 つと一致しているかどうかを確認します。
$ openstack port show 6181c089-7e33-4f1c-b8fe-2523ff431ffc -c mac_address -c fixed_ips +-------------+------------------------------------------------------------------------------+ | Field | Value | +-------------+------------------------------------------------------------------------------+ | fixed_ips | ip_address='192.168.24.24', subnet_id='1d11c677-5946-4733-87c3-23a9e06077aa' | | mac_address | 00:2d:28:2f:8d:95 | +-------------+------------------------------------------------------------------------------+
ベアメタルノードを再起動して、新規 IP アドレスが認識されるようにします。
$ openstack server reboot overcloud-baremetal-0
インターフェースを接続または切断した後には、ベアメタルの OS は変更されたネットワークインターフェースを削除/追加/変更します。ポートを置き換える場合には、DHCP 要求が新規 IP アドレスを取得しますが、古い DHCP リースがまだ有効なので、多少時間がかかる場合があります。変更を即時に適用する最も簡単な方法は、ベアメタルホストを再起動することです。
5.6. Bare Metal サービスの通知の設定
Bare Metal サービスを設定して、サービス内で発生する異なるイベントの通知が表示されるようにすることが可能です。このような通知は、課金目的やデータストアの監視などで外部のサービスが使用することができます。本項では、この通知を有効化する方法について説明します。
Bare Metal サービスの通知を有効化するには、ironic.conf 設定ファイルで以下のオプションを設定する必要があります。
-
[DEFAULT]セクションのnotification_levelオプションは、通知送信の最小の優先度を決定します。このオプションの値は、debug、info、warning、error、criticalのいずれかに設定することができます。オプションがwarningに設定されると、 優先度がwarning、error、criticalのいずれかの全通知が送信されますが、優先度がdebugまたはinfoの通知は送信させません。このオプションが設定されていない場合には、通知は一切送信されません。利用可能な各通知の優先度は、以下に記載しています。 -
[oslo_messaging_notifications]セクションのtransport_urlのオプションは、通知の送信に使用されるメッセージバスを決定します。このオプションが設定されていない場合には、RPC に使われるデフォルトのトランスポートが使用されます。
通知はすべて、メッセージバス内の ironic_versioned_notifications トピックで発行されます。通常は、メッセージバスを通過する各種別のメッセージは、メッセージの内容を説明しているトピックに関連付けられます。
通知は失われる可能性があり、通知がメッセージバスを通ってエンドユーザーに届く保証はありません。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.