13.2. API を使用した Nutanix へのホストの追加


API を使用して Nutanix にホストを追加するには、Assisted Installer から検出イメージ ISO を生成します。最小限の検出イメージ ISO を使用します。これはデフォルト設定です。このイメージには、ネットワークを使用してホストを起動するために必要なものだけが含まれています。コンテンツの大部分は、起動時にダウンロードされます。ISO イメージのサイズは約 100MB です。

これが完了したら、Nutanix プラットフォームのイメージを作成し、Nutanix 仮想マシンを作成する必要があります。

前提条件

  • Assisted Installer API の認証を設定している。
  • Assisted Installer のクラスタープロファイルを作成している。
  • Assisted Installer のインフラストラクチャー環境を作成している。
  • インフラストラクチャー環境 ID がシェルに $INFRA_ENV_ID としてエクスポートされている。
  • Assisted Installer のクラスター設定を完了している。
  • Nutanix クラスター環境をセットアップし、クラスター名とサブネット名を書き留めた。

手順

  1. Ignition ファイルを使用して起動する場合は、検出イメージを設定します。
  2. 環境変数を保持する Nutanix クラスター設定ファイルを作成します。

    $ touch ~/nutanix-cluster-env.sh
    $ chmod +x ~/nutanix-cluster-env.sh

    新しいターミナルセッションを開始する必要がある場合は、環境変数を簡単に再読み込みできます。以下に例を示します。

    $ source ~/nutanix-cluster-env.sh
  3. Nutanix クラスターの名前を設定ファイルの NTX_CLUSTER_NAME 環境変数に割り当てます。

    $ cat << EOF >> ~/nutanix-cluster-env.sh
    export NTX_CLUSTER_NAME=<cluster_name>
    EOF

    <cluster_name> を Nutanix クラスターの名前に置き換えます。

  4. Nutanix クラスターのサブネット名を設定ファイルの NTX_SUBNET_NAME 環境変数に割り当てます。

    $ cat << EOF >> ~/nutanix-cluster-env.sh
    export NTX_SUBNET_NAME=<subnet_name>
    EOF

    <subnet_name> を Nutanix クラスターのサブネットの名前に置き換えます。

  5. API トークンを更新します。

    $ source refresh-token
  6. ダウンロード URL を取得します。

    $ curl -H "Authorization: Bearer ${API_TOKEN}" \
    https://api.openshift.com/api/assisted-install/v2/infra-envs/${INFRA_ENV_ID}/downloads/image-url
  7. Nutanix イメージ設定ファイルを作成します。

    $ cat << EOF > create-image.json
    {
      "spec": {
        "name": "ocp_ai_discovery_image.iso",
        "description": "ocp_ai_discovery_image.iso",
        "resources": {
          "architecture": "X86_64",
          "image_type": "ISO_IMAGE",
          "source_uri": "<image_url>",
          "source_options": {
            "allow_insecure_connection": true
          }
        }
      },
      "metadata": {
        "spec_version": 3,
        "kind": "image"
      }
    }
    EOF

    <image_url> を、前の手順でダウンロードしたイメージの URL に置き換えます。

  8. Nutanix イメージを作成します。

    $ curl  -k -u <user>:'<password>' -X 'POST' \
    'https://<domain-or-ip>:<port>/api/nutanix/v3/images \
      -H 'accept: application/json' \
      -H 'Content-Type: application/json' \
      -d @./create-image.json | jq '.metadata.uuid'

    <user> を Nutanix ユーザー名に置き換えます。'<password>' を Nutanix パスワードに置き換えます。<domain-or-ip> を Nutanix プラットフォームのドメイン名または IP アドレスに置き換えます。<port> を Nutanix サーバーのポートに置き換えます。ポートのデフォルトは 9440 です。

  9. 返された UUID を設定ファイルの NTX_IMAGE_UUID 環境変数に割り当てます。

    $ cat << EOF >> ~/nutanix-cluster-env.sh
    export NTX_IMAGE_UUID=<uuid>
    EOF
  10. Nutanix クラスターの UUID を取得します。

    $ curl -k -u <user>:'<password>' -X 'POST' \
      'https://<domain-or-ip>:<port>/api/nutanix/v3/clusters/list' \
      -H 'accept: application/json' \
      -H 'Content-Type: application/json' \
      -d '{
      "kind": "cluster"
    }'  | jq '.entities[] | select(.spec.name=="<nutanix_cluster_name>") | .metadata.uuid'

    <user> を Nutanix ユーザー名に置き換えます。'<password>' を Nutanix パスワードに置き換えます。<domain-or-ip> を Nutanix プラットフォームのドメイン名または IP アドレスに置き換えます。<port> を Nutanix サーバーのポートに置き換えます。ポートのデフォルトは 9440 です。<nutanix_cluster_name> を Nutanix クラスターの名前に置き換えます。

  11. 返された Nutanix クラスター UUID を設定ファイルの NTX_CLUSTER_UUID 環境変数に割り当てます。

    $ cat << EOF >> ~/nutanix-cluster-env.sh
    export NTX_CLUSTER_UUID=<uuid>
    EOF

    <uuid> を Nutanix クラスターの返された UUID に置き換えます。

  12. Nutanix クラスターのサブネット UUID を取得します。

    $ curl -k -u <user>:'<password>' -X 'POST' \
      'https://<domain-or-ip>:<port>/api/nutanix/v3/subnets/list' \
      -H 'accept: application/json' \
      -H 'Content-Type: application/json' \
      -d '{
      "kind": "subnet",
      "filter": "name==<subnet_name>"
    }' | jq '.entities[].metadata.uuid'

    <user> を Nutanix ユーザー名に置き換えます。'<password>' を Nutanix パスワードに置き換えます。<domain-or-ip> を Nutanix プラットフォームのドメイン名または IP アドレスに置き換えます。<port> を Nutanix サーバーのポートに置き換えます。ポートのデフォルトは 9440 です。<subnet_name> をクラスターのサブネットの名前に置き換えます。

  13. 返された Nutanix サブネット UUID を設定ファイルの NTX_CLUSTER_UUID 環境変数に割り当てます。

    $ cat << EOF >> ~/nutanix-cluster-env.sh
    export NTX_SUBNET_UUID=<uuid>
    EOF

    <uuid> をクラスターサブネットの返された UUID に置き換えます。

  14. Nutanix 環境変数が設定されていることを確認します。

    $ source ~/nutanix-cluster-env.sh
  15. Nutanix ホストごとに仮想マシン設定ファイルを作成します。3 つのコントロールプレーン (マスター) 仮想マシンと少なくとも 2 つのワーカー仮想マシンを作成します。以下に例を示します。

    $ touch create-master-0.json
    $ cat << EOF > create-master-0.json
    {
       "spec": {
          "name": "<host_name>",
          "resources": {
             "power_state": "ON",
             "num_vcpus_per_socket": 1,
             "num_sockets": 16,
             "memory_size_mib": 32768,
             "disk_list": [
                {
                   "disk_size_mib": 122880,
                   "device_properties": {
                      "device_type": "DISK"
                   }
                },
                {
                   "device_properties": {
                      "device_type": "CDROM"
                   },
                   "data_source_reference": {
                     "kind": "image",
                     "uuid": "$NTX_IMAGE_UUID"
                  }
                }
             ],
             "nic_list": [
                {
                   "nic_type": "NORMAL_NIC",
                   "is_connected": true,
                   "ip_endpoint_list": [
                      {
                         "ip_type": "DHCP"
                      }
                   ],
                   "subnet_reference": {
                      "kind": "subnet",
                      "name": "$NTX_SUBNET_NAME",
                      "uuid": "$NTX_SUBNET_UUID"
                   }
                }
             ],
             "guest_tools": {
                "nutanix_guest_tools": {
                   "state": "ENABLED",
                   "iso_mount_state": "MOUNTED"
                }
             }
          },
          "cluster_reference": {
             "kind": "cluster",
             "name": "$NTX_CLUSTER_NAME",
             "uuid": "$NTX_CLUSTER_UUID"
          }
       },
       "api_version": "3.1.0",
       "metadata": {
          "kind": "vm"
       }
    }
    EOF

    <host_name> をホストの名前に置き換えます。

  16. 各 Nutanix 仮想マシンを起動します。

    $ curl -k -u <user>:'<password>' -X 'POST' \
      'https://<domain-or-ip>:<port>/api/nutanix/v3/vms' \
      -H 'accept: application/json' \
      -H 'Content-Type: application/json' \
      -d @./<vm_config_file_name> | jq '.metadata.uuid'

    <user> を Nutanix ユーザー名に置き換えます。'<password>' を Nutanix パスワードに置き換えます。<domain-or-ip> を Nutanix プラットフォームのドメイン名または IP アドレスに置き換えます。<port> を Nutanix サーバーのポートに置き換えます。ポートのデフォルトは 9440 です。<vm_config_file_name> を仮想マシン設定ファイルの名前に置き換えます。

  17. 返された仮想マシン UUID を設定ファイル内の一意の環境変数に割り当てます。

    $ cat << EOF >> ~/nutanix-cluster-env.sh
    export NTX_MASTER_0_UUID=<uuid>
    EOF

    <uuid> を仮想マシンの返された UUID に置き換えます。

    注記

    環境変数には、仮想マシンごとの一意の名前が必要です。

  18. Assisted Installer が各仮想マシンを検出し、検証にパスするまで待ちます。

    $ curl -s -X GET "https://api.openshift.com/api/assisted-install/v2/clusters/$CLUSTER_ID"
    --header "Content-Type: application/json"
    -H "Authorization: Bearer $API_TOKEN"
    | jq '.enabled_host_count'
  19. クラスター定義を変更して、Nutanix との統合を有効にします。

    $ curl https://api.openshift.com/api/assisted-install/v2/clusters/${CLUSTER_ID} \
    -X PATCH \
    -H "Authorization: Bearer ${API_TOKEN}" \
    -H "Content-Type: application/json" \
    -d '
    {
        "platform_type":"nutanix"
    }
    ' | jq
  20. インストール手順を続行します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.