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

重要

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

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

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

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

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

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

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

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

重要

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

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

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

手順

  1. ノードの一覧が含まれるテンプレートを作成します。以下の例に示す JSON および YAML テンプレートを使用して、ノード定義のテンプレートを構成する方法を説明します。

    JSON テンプレートの例

    {
        "nodes":[
            {
                "mac":[
                    "bb:bb:bb:bb:bb:bb"
                ],
                "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"
            },
            {
                "mac":[
                    "cc:cc:cc:cc:cc:cc"
                ],
                "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:
      - mac:
          - "bb:bb:bb:bb:bb:bb"
        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"
      - mac:
          - cc:cc:cc:cc:cc:cc
        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 デバイスにアクセスするためのポート
    mac
    (オプション) ノード上のネットワークインターフェースの MAC アドレス一覧。各システムのプロビジョニング NIC の MAC アドレスのみを使用します。
    cpu
    (オプション) ノード上の CPU 数
    memory
    (オプション) メモリーサイズ (MB 単位)
    disk
    (オプション) ハードディスクのサイズ (GB 単位)
    arch

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

    重要

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

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

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

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

    このコマンドにより、それぞれのノードがテンプレートから director に登録されます。

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

    (undercloud) $ openstack baremetal node list