プライベート クラウドを削除する

プライベート クラウドは、1 つ以上の vSphere クラスタで構成されます。プライベート クラウドを削除すると、すべてのクラスタとそのノードが削除されます。

始める前に

1 つのプライベート クラウドを削除すると、プライベート クラウド全体が削除されます。プライベート クラウド ノードを含む、すべてのプライベート クラウド コンポーネントが削除されます。データを保持する場合は、データをオンプレミス ストレージまたはその他のストレージにバックアップします。

プライベート クラウドのコンポーネントは次のとおりです。

  • ノード
  • 仮想マシン
  • 管理 VLAN とサブネット
  • ワークロードのサブネット
  • プライベート クラウドに保存されているすべてのユーザーデータ
  • サブネットへのすべてのファイアウォール ルールのアタッチメント

gcloud と API の要件

gcloud コマンドライン ツールまたは API を使用して VMware Engine リソースを管理するには、以下で説明するようにツールを構成することをおすすめします。

gcloud

  1. デフォルトのプロジェクト ID を設定します。

    gcloud config set project PROJECT_ID
    
  2. デフォルトのリージョンとゾーンを設定します。

    gcloud config set compute/region REGION
    gcloud config set compute/zone ZONE

gcloud vmware ツールの詳細については、Cloud SDK リファレンス ドキュメントをご確認ください

API

このドキュメント セットの API の例では、cURL コマンドライン ツールを使用して API がクエリされています。cURL リクエストには、有効なアクセス トークンが必要です。有効なアクセス トークンを取得するにはさまざまな方法があります。次の手順では、gcloud ツールを使用してアクセス トークンを生成します。

  1. Google Cloud にログインする

    gcloud auth login
    
  2. アクセス トークンを生成して TOKEN にエクスポートする

    export TOKEN=`gcloud auth print-access-token`
    
  3. TOKEN が正しく設定されていることを確認する

    echo $TOKEN
    
    Output:
    TOKEN
    

API へのリクエストで認証トークンを使用します。次に例を示します。

curl -X GET -H "Authorization: Bearer \"$TOKEN\""  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations

Python

このドキュメントの Python コードサンプルは、VMware Engine ライブラリを使用して API と通信します。このアプローチを使用するには、ライブラリをインストールし、アプリケーションのデフォルト認証情報を構成する必要があります。

  1. Python ライブラリをダウンロードしてインストールする

     pip install google-cloud-vmwareengine
    
  2. シェルで次のコマンドを実行して、アプリケーションのデフォルト認証情報を構成する

      gcloud auth application-default login
    

    または、サービス アカウント キー ファイルを使用する

      export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

ライブラリの詳細については、リファレンス ページまたは GitHub のコードサンプルをご覧ください。

プライベート クラウドを削除する

コンソール

  1. VMware Engine ポータルにアクセスします
  2. [Resources] ページを開きます。
  3. 削除するプライベート クラウドを選択します。
  4. 概要ページで、[Delete this Private Cloud] をクリックします。
  5. 確認ページで、削除操作のすべての結果を確認するよう求められます。これらをよく読み、結果を受け入れる準備ができている場合にのみ、削除を続行します。結果を受け入れる準備ができたら、すべてのチェックボックスをオンにします。
  6. 削除を実行するまでの待機時間(1~8 時間)を入力します。この期間内であれば、[Cancel] をクリックして削除をキャンセルできます。
  7. 削除するプライベート クラウドを認識していることを確認するため、削除するプライベート クラウドの名前を入力します。
  8. [Delete] をクリックして、削除するプライベート クラウドにマークを付けます。

削除プロセスは、指定した遅延(時間数)の後に開始され、完了するまで実行されます。

gcloud

 gcloud vmware private-clouds delete PC_NAME \
     --location=ZONE [--delay-hours=HOURS]

次のように置き換えます。

  • PC_NAME: プライベート クラウドの名前
  • ZONE: このプライベート クラウドのゾーン
  • HOURS: このリクエストの遅延時間。デフォルトでは 3 時間に設定されていますが、0~8 時間に設定することもできます。この値を 0 に設定すると、削除リクエストがすぐに開始されます。

API

curl -X DELETE -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds?privateCloudId=PC_NAME&mps;delayHours=HOUR

次のように置き換えます。

  • TOKEN: このリクエストの認証トークン。
  • PROJECT_ID: このリクエストのプロジェクト
  • ZONE: プライベート クラウドのゾーン
  • PC_NAME: プライベート クラウドの名前
  • HOUR: このリクエストの遅延時間。デフォルトは 3 です。0~8 時間に指定できます。この値を 0 に設定すると、削除リクエストがすぐに開始されます。

Python

VMWare Engine ライブラリによるプライベート クラウドの削除は、Cloud コンソールを使用する場合とは異なり、1 ステップのプロセスです。プライベート クラウドの削除メソッドを呼び出すときは十分に注意してください。

from google.api_core import operation
from google.cloud import vmwareengine_v1

def delete_private_cloud_by_full_name(cloud_name: str) -> operation.Operation:
    """
    Deletes VMWare Private Cloud.

    Args:
        cloud_name: identifier of the Private Cloud you want to delete.
            Expected format:
            projects/{project_name}/locations/{zone}/privateClouds/{cloud}

    Returns:
        An Operation object related to started private cloud deletion operation.
    """
    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.DeletePrivateCloudRequest()
    request.force = True
    request.delay_hours = 3
    request.name = cloud_name
    return client.delete_private_cloud(request)

def delete_private_cloud(
    project_id: str, zone: str, cloud_name: str
) -> operation.Operation:
    """
    Deletes VMWare Private Cloud.

    Args:
        project_id: name of the project hosting the private cloud.
        zone: zone in which the private cloud is located in.
        cloud_name: name of the private cloud to be deleted.

    Returns:
        An Operation object related to started private cloud deletion operation.
    """
    return delete_private_cloud_by_full_name(
        f"projects/{project_id}/locations/{zone}/privateClouds/{cloud_name}"
    )

プライベート クラウドの削除をキャンセルする

プライベート クラウドの削除は、待機期間内であればキャンセルできます。次の操作を行います。

コンソール

  1. VMware Engine ポータルにアクセスします
  2. [Resources] ページを開きます。
  3. 削除対象としてマークしたプライベート クラウドを選択します。
  4. 概要ページで [Cancel deletion] をクリックして、プライベート クラウドの削除をキャンセルします。

gcloud

gcloud vmware private-clouds undelete PC_NAME \
    --location=ZONE

次のように置き換えます。

  • PC_NAME: プライベート クラウドの名前
  • ZONE: このプライベート クラウドのゾーン

API

curl -X POST -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds?privateCloudId=PC_NAME:undelete

次のように置き換えます。

  • TOKEN: このリクエストの認証トークン。
  • PROJECT_ID: このリクエストのプロジェクト
  • ZONE: プライベート クラウドのゾーン
  • PC_NAME: プライベート クラウドの名前

Python

from google.api_core import operation
from google.cloud import vmwareengine_v1

def cancel_private_cloud_deletion_by_full_name(cloud_name: str) -> operation.Operation:
    """
    Cancels in progress deletion of VMWare Private Cloud.

    Args:
        cloud_name: identifier of the Private Cloud you want to cancel deletion for.
            Expected format:
            projects/{project_name}/locations/{zone}/privateClouds/{cloud}

    Returns:
        An Operation object related to canceling private cloud deletion operation.
    """
    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.UndeletePrivateCloudRequest()
    request.name = cloud_name
    return client.undelete_private_cloud(request)

def cancel_private_cloud_deletion(
    project_id: str, zone: str, cloud_name: str
) -> operation.Operation:
    """
    Cancels in progress deletion of VMWare Private Cloud.

    Args:
        project_id: name of the project hosting the private cloud.
        zone: zone in which the private cloud is located in.
        cloud_name: name of the private cloud to cancel deletion for.

    Returns:
        An Operation object related to canceling private cloud deletion operation.
    """
    return cancel_private_cloud_deletion_by_full_name(
        f"projects/{project_id}/locations/{zone}/privateClouds/{cloud_name}"
    )