LoginSignup
1
0

More than 1 year has passed since last update.

Terraformを使って、一括でGoogle Cloud上にNetApp BlueXP ConnectorとCloud Volumes ONTAPを作成してみた

Last updated at Posted at 2023-02-15

はじめに

前回は、以下の2つの記事でBlueXPのGUIからConnectorとCVOを作成する手順を紹介しました。

また、ConnectorのみをTerraformで作成する手順を「Terraformを使って、NetApp BlueXP ConnectorをGoogle Cloud Platformに作成」という記事で紹介しました。

今回は、Terraformテンプレートを使用して、一括でConnectorとCVOを作成する手順を紹介します。

手順

1.Terraform templateに必要な準備
2.BlueXP ConnectorとCVOをGoogle Cloud Shellから作成
3.CVOにVolumeを追加・確認

1.Terraform templateに必要な準備

BlueXP ConnectorとCVOの詳細設定をmain.tfに準備し、Google Cloud Consoleからbluexp_service_account.jsonをダウンロードします。

  • main.tf
  1. refresh_tokenにアクセスしてNetApp refresh tokenを作成します。
  2. BlueXP Connectorの詳細設定(account_idservice_account_emailなど)はこちらの「BlueXPのGUIより、サンプルテンプレートを自動作成」を参照できます。service_account_pathは下記のbluexp_service_account.jsonのpathになります。
  3. CVOの設定に関してはYour_XXXを間違えないように入れ替えてください。パラメーターの設定はこちらの「Terraform: Argument Reference」、また「CVO: Supported configurations in Google Cloud」から詳細を確認できます。今回はテストの為、capacity_package_nameFreemiumにします。
    image.png
    instance_typen1-standard-8にします。
    image.png
    client_id = netapp-cloudmanager_connector_gcp.cl-occm-gcp.client_idは、BlueXP Connector (cloudmanager_connector_gcp.cl-occm-gcp)を作成後に得られるclient_idを参照するため、そのままにしてください。
    image.png
    詳細なネットワークなどの設定は、BlueXPのGUIからCVOを作成する手順に従い、最後にShow API requestを参照することもできます。
    image.png

最後にできたmain.tfはこの様になります。

terraform {
  required_providers {
    netapp-cloudmanager = {
      source = "NetApp/netapp-cloudmanager"
      version = "23.1.1"
    }
  }
}

provider "netapp-cloudmanager" {
  refresh_token = "Your_refresh_token"
}

# BlueXP Connector
resource "netapp-cloudmanager_connector_gcp" "cl-occm-gcp" {
  provider = "netapp-cloudmanager"
  name = "gcpbluexpconnector"
  zone = "asia-northeast2-a"
  company = "NetApp"
  project_id = "Your_project_id"
  service_account_email = "cloud-manager-service-account@Your_project.iam.gserviceaccount.com"
  service_account_path = "Your_bluexp_service_account.json"
  account_id = "Your_account_id"
  subnet_id = "Your_subnet_id"
  associate_public_ip = true
}

# CVO on asia-northeast2-a
resource "netapp-cloudmanager_cvo_gcp" "cl-cvo-gcp" {
  provider = netapp-cloudmanager
  name = "terraformcvogcp"
  project_id = "Your_project_id"
  zone = "asia-northeast2-a"
  gcp_service_account = "Your_cvo_serviceaccount@Your_project_id.iam.gserviceaccount.com"
  svm_password = "Yourpassword!"
  client_id = netapp-cloudmanager_connector_gcp.cl-occm-gcp.client_id
  subnet_id = "projects/Your_project_id/regions/asia-northeast2/subnetworks/default"
  vpc_id = "default"
  firewall_rule = "allow-all-ingress"
  gcp_volume_size = "500"
  gcp_volume_size_unit = "GB"
  gcp_volume_type = "pd-standard"
  is_ha = false
  instance_type = "n1-standard-8"
  capacity_package_name = "Freemium"
}

  • bluexp_service_account.json
    Terraform templateに必要な準備を参照し、必要なAPIを有効化した後、サービスアカウントを作成します。その後、サービスアカウントから新しいキーを作成して、以下のようなJSONファイルを「bluexp_service_account.json」として保存します。
    image.png

2.BlueXP ConnectorとCVOをGoogle Cloud Shellから作成

Google Cloud ConsoleからCloud Shellにアクセスして、上記の準備したbluexp_service_account.jsonmain.tfを確認して、terraform init -> terraform applyで作成します。
image.png
BlueXP ConnectorとCVOの詳細設定がチェックされます。ここでパラメーターの設定が間違った場合はこちらの「Argument Reference」から詳細を確認できます。
image.png
yesを入力してしばらく待って、Creation complete after 5m38sで五分ぐらい、BlueXP Connectorが作成されました。
image.png
もう少し待つと、CVOの作成も無事に完了です。Google Cloud Consoleから既にxxxx-vm(CVOとConnector両方)というVMインスタンスができました。
image.png
BlueXPのGUIにも設定したFreemiumのCVOが表示されます。
image.png

3.CVOにVolumeを追加・確認

  • CVOにVolumeを追加・確認
    こちらの記事「CVOにVloumeを追加」を参照し、CVOをクリックして、Add Volume->New volumeを選んでWizardに従って、最後Approveして追加します。
    image.png
    今回はテストの為、Disk TypePD-STANDARD、1GBにしました。
    image.png
  • mount確認
    BlueXPのGUIからmountコマンドをコピーします。
    image.png
    BlueXPのconnectorにSSHで入って、こちらの「mount確認」を参照し、 sudo yum install -y nfs-utilsをインストールします。ディレクトリを作成して、mountしてファイルを書き込むことができるのを確認します。
    image.png
  • クリーンアップ
    terraform destroyを実行することで、今回作成したBlueXP ConnectorとCVOをDestruction complete after 1m14sのように短時間でクリーンアップすることができました。Google Cloud ConsoleとBlueXPのGUIからもCVOが削除されたことを確認できました
    image.png

最後に

今回は、Google Cloud ShellのCLIからTerraformを使用して、BlueXP ConnectorとCVOをGoogle Cloudに一発で作成してみました。ボリュームは手動で追加してマウントしましたが、Terraform Providers:netapp-cloudmanager_volumeにより、NFSボリュームもTerraformで追加できます。次回はまた、Terraformを使用してボリュームを追加してみましょう!

参考リンク

1.NetApp BlueXP: Create a Connector in Google Cloud from BlueXP
2.Google Cloud Platform:Creating a custom role
3.Google Cloud Platform:Creating a service account
4.BlueXP: Learn about Connectors
5.GCP region: Tokyo
6.Cloud Volumes ONTAP 9.12.1 release notes:Supported configurations in Google Cloud
7.Terraform(google provider) で Service Account に Role をバインドするときの罠
8.Terraformを使って、NetApp BlueXP ConnectorをGoogle Cloud Platformに作成してみた
9.BlueXPを使って、Google Cloud上にNetApp Cloud Volumes ONTAPを作成してみた
10.Terraform: netapp-cloudmanager_cvo_gcp

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0