Menu Close

第8章 オーバークラウドのデプロイ前に行うベアメタルノードのプロビジョニング

重要

この機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト目的のみでご利用いただく機能で、実稼働環境にデプロイすべきではありません。テクノロジープレビュー機能についての詳しい情報は、「対象範囲の詳細」を参照してください。

オーバークラウドのデプロイメントプロセスには、2 つの主要な操作があります。

  • ノードのプロビジョニング
  • オーバークラウドのデプロイ

これらの操作を別個のプロセスに分割すると、このプロセスに伴うリスクの一部を軽減し、より効率的に障害点を特定することができます。

  1. ベアメタルノードをプロビジョニングする。

    1. ノード定義ファイルを yaml 形式で作成します。
    2. ノード定義ファイルを指定して、プロビジョニングコマンドを実行します。
  2. オーバークラウドをデプロイする。

    1. プロビジョニングコマンドにより生成される heat 環境ファイルを指定して、デプロイメントコマンドを実行します。

プロビジョニングプロセスにより、ノードがプロビジョニングされ、ノード数、予測可能なノード配置、カスタムイメージ、カスタム NIC 等のさまざまなノード仕様が含まれる heat 環境ファイルが生成されます。オーバークラウドをデプロイする際に、このファイルをデプロイメントコマンドに追加します。

重要

事前にプロビジョニングされたノードと director がプロビジョニングしたノードを組み合わせることはできません。

8.1. オーバークラウドノードの登録

director では、手動で作成したノード定義のテンプレートが必要です。このテンプレートは JSON または YAML 形式を使用し、ノードのハードウェアおよび電源管理の情報が含まれます。

手順

  1. ノードの一覧が含まれるテンプレートを作成します。以下の例に示す 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 が推奨されるサポート対象電源管理ドライバーです。サポート対象電源管理ドライバーの種別およびそのオプションに関する詳細は、「付録A 電源管理ドライバー」を参照してください。それらの電源管理ドライバーが想定どおりに機能しない場合には、電源管理に 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 フィールドにダミーのデータを含める必要があります。
    cpu
    (オプション) ノード上の CPU 数
    memory
    (オプション) メモリーサイズ (MB 単位)
    disk
    (オプション) ハードディスクのサイズ (GB 単位)
    arch

    (オプション) システムアーキテクチャー

    重要

    マルチアーキテクチャークラウドをビルドする場合には、x86_64 アーキテクチャーを使用するノードと ppc64le アーキテクチャーを使用するノードを区別するために arch キーが必須です。

  2. テンプレートを作成したら、以下のコマンドを実行してフォーマットおよび構文を検証します。

    $ source ~/stackrc
    (undercloud) $ openstack overcloud node import --validate-only ~/nodes.json
    重要

    マルチアーキテクチャーノードの場合は、--http-boot /var/lib/ironic/tftpboot/ オプションも追加する必要があります。

  3. stack ユーザーのホームディレクトリーにファイルを保存し (/home/stack/nodes.json)、続いて以下のコマンドを実行してテンプレートを director にインポートします。

    (undercloud) $ openstack overcloud node import ~/nodes.json

    このコマンドにより、それぞれのノードがテンプレートから director に登録されます。UEFI ブートモードを使用する場合は、各ノードにブートモードを設定する必要もあります。EUFI ブートモードを設定せずにノードをイントロスペクションする場合、ノードはレガシーモードで起動します。詳細は、「 UEFI ブートモードの設定 」を参照してください。

  4. ノードの登録および設定が完了するまで待ちます。完了したら、ノードが director に正しく登録されていることを確認します。

    (undercloud) $ openstack baremetal node list