第8章 オーバークラウドのデプロイ前に行うベアメタルノードのプロビジョニング
この機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト用途にのみご利用いただく機能です。実稼働環境にはデプロイしないでください。テクノロジープレビュー機能についての詳しい情報は、対象範囲の詳細 を参照してください。
オーバークラウドのデプロイメントプロセスには、2 つの主要な操作があります。
- ノードのプロビジョニング
- オーバークラウドのデプロイ
これらの操作を別個のプロセスに分割すると、このプロセスに伴うリスクの一部を軽減し、より効率的に障害点を特定することができます。
ベアメタルノードをプロビジョニングする。
- ノード定義ファイルを yaml 形式で作成します。
- ノード定義ファイルを指定して、プロビジョニングコマンドを実行します。
オーバークラウドをデプロイする。
- プロビジョニングコマンドにより生成される heat 環境ファイルを指定して、デプロイメントコマンドを実行します。
プロビジョニングプロセスにより、ノードがプロビジョニングされ、ノード数、予測可能なノード配置、カスタムイメージ、カスタム NIC 等のさまざまなノード仕様が含まれる heat 環境ファイルが生成されます。オーバークラウドをデプロイする際に、このファイルをデプロイメントコマンドに追加します。
事前にプロビジョニングされたノードと director がプロビジョニングしたノードを組み合わせることはできません。
8.1. オーバークラウドノードの登録
ディレクターには、ノードのハードウェアと電源管理の詳細を指定するノード定義テンプレートが必要です。このテンプレートは、JSON 形式の nodes.json
または YAML 形式の nodes.yaml
で作成できます。
手順
ノードをリスト表示する
nodes.json
またはnodes.yaml
という名前のテンプレートを作成します。以下の例に示す JSON および YAML テンプレートを使用して、ノード定義のテンプレートを設定する方法を説明します。JSON テンプレートの例
{ "nodes": [{ "ports": [{ "address": "aa:aa:aa:aa:aa:aa", "physical_network": "ctlplane", "local_link_connection": { "switch_id": "52:54:00:00:00:00", "port_id": "p0" } }], "name": "node01", "cpu": "4", "memory": "6144", "disk": "40", "arch": "x86_64", "pm_type": "ipmi", "pm_user": "admin", "pm_password": "p@55w0rd!", "pm_addr": "192.168.24.205" }, { "ports": [{ "address": "bb:bb:bb:bb:bb:bb", "physical_network": "ctlplane", "local_link_connection": { "switch_id": "52:54:00:00:00:00", "port_id": "p0" } }], "name": "node02", "cpu": "4", "memory": "6144", "disk": "40", "arch": "x86_64", "pm_type": "ipmi", "pm_user": "admin", "pm_password": "p@55w0rd!", "pm_addr": "192.168.24.206" } ] }
YAML テンプレートの例
nodes: - ports: - address: aa:aa:aa:aa:aa:aa physical_network: ctlplane local_link_connection: switch_id: 52:54:00:00:00:00 port_id: p0 name: "node01" cpu: 4 memory: 6144 disk: 40 arch: "x86_64" pm_type: "ipmi" pm_user: "admin" pm_password: "p@55w0rd!" pm_addr: "192.168.24.205" - ports: - address: bb:bb:bb:bb:bb:bb physical_network: ctlplane local_link_connection: switch_id: 52:54:00:00:00:00 port_id: p0 name: "node02" cpu: 4 memory: 6144 disk: 40 arch: "x86_64" pm_type: "ipmi" pm_user: "admin" pm_password: "p@55w0rd!" pm_addr: "192.168.24.206"
このテンプレートには、以下の属性が含まれます。
- name
- ノードの論理名
- pm_type
使用する電源管理ドライバー。この例では IPMI ドライバー (
ipmi
) を使用しています。注記IPMI が推奨されるサポート対象電源管理ドライバーです。サポート対象電源管理ドライバーの種別およびそのオプションに関する詳細は、30章電源管理ドライバー を参照してください。それらの電源管理ドライバーが想定どおりに機能しない場合には、電源管理に IPMI を使用してください。
- pm_user、pm_password
- IPMI のユーザー名およびパスワード
- pm_addr
- IPMI デバイスの IP アドレス
- pm_port (オプション)
- 特定の IPMI デバイスにアクセスするためのポート
- address
- (オプション) ノード上のネットワークインターフェイスの MAC アドレスリスト。各システムのプロビジョニング NIC の MAC アドレスのみを使用します。
- physical_network
- (オプション) プロビジョニング NIC に接続される物理ネットワーク
- local_link_connection
-
(オプション) IPv6 プロビジョニングを使用し、イントロスペクション中に LLDP がローカルリンク接続を正しく反映しない場合は、
local_link_connection
パラメーターのswitch_id
およびport_id
フィールドにダミーのデータを含める必要があります。偽のデータを含める方法の詳細は、Using director introspection to collect bare metal node hardware information を参照してください。 - cpu
- (オプション) ノード上の CPU 数
- memory
- (オプション) メモリーサイズ (MB 単位)
- disk
- (オプション) ハードディスクのサイズ (GB 単位)
- arch
(オプション) システムアーキテクチャー
重要マルチアーキテクチャークラウドをビルドする場合には、
x86_64
アーキテクチャーを使用するノードとppc64le
アーキテクチャーを使用するノードを区別するためにarch
キーが必須です。
テンプレートを作成したら、以下のコマンドを実行してフォーマットおよび構文を検証します。
$ source ~/stackrc (undercloud)$ openstack overcloud node import --validate-only ~/nodes.json
重要マルチアーキテクチャーノードの場合は、
--http-boot /var/lib/ironic/tftpboot/
オプションも追加する必要があります。stack
ユーザーのホームディレクトリーにファイルを保存し (/home/stack/nodes.json
)、続いて以下のコマンドを実行してテンプレートを director にインポートします。(undercloud)$ openstack overcloud node import ~/nodes.json
このコマンドにより、それぞれのノードがテンプレートから director に登録されます。UEFI ブートモードを使用する場合は、各ノードでブートモードも設定する必要があります。UEFI ブートモードを設定せずにノードをイントロスペクトすると、ノードはレガシーモードでブートします。詳細は、Setting the boot mode to UEFI boot mode を参照してください。
ノードの登録および設定が完了するまで待ちます。完了したら、ノードが director に正しく登録されていることを確認します。
(undercloud)$ openstack baremetal node list