はじめに
前回は、以下の2つの記事でBlueXPのGUIからConnectorとCVOを作成する手順を紹介しました。
- 「BlueXPを使って、Google Cloud上にNetApp Cloud Volumes ONTAPを作成」
- 「Google Cloud Platform上にNetApp BlueXP Connectorを作成」
また、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
- refresh_tokenにアクセスしてNetApp refresh tokenを作成します。
- BlueXP Connectorの詳細設定(
account_idやservice_account_emailなど)はこちらの「BlueXPのGUIより、サンプルテンプレートを自動作成」を参照できます。service_account_pathは下記のbluexp_service_account.jsonのpathになります。 - CVOの設定に関しては
Your_XXXを間違えないように入れ替えてください。パラメーターの設定はこちらの「Terraform: Argument Reference」、また「CVO: Supported configurations in Google Cloud」から詳細を確認できます。今回はテストの為、capacity_package_nameをFreemiumにします。

instance_typeをn1-standard-8にします。

client_id = netapp-cloudmanager_connector_gcp.cl-occm-gcp.client_idは、BlueXP Connector (cloudmanager_connector_gcp.cl-occm-gcp)を作成後に得られるclient_idを参照するため、そのままにしてください。

詳細なネットワークなどの設定は、BlueXPのGUIからCVOを作成する手順に従い、最後にShow API requestを参照することもできます。
最後にできた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」として保存します。
2.BlueXP ConnectorとCVOをGoogle Cloud Shellから作成
Google Cloud ConsoleからCloud Shellにアクセスして、上記の準備したbluexp_service_account.jsonとmain.tfを確認して、terraform init -> terraform applyで作成します。

BlueXP ConnectorとCVOの詳細設定がチェックされます。ここでパラメーターの設定が間違った場合はこちらの「Argument Reference」から詳細を確認できます。

yesを入力してしばらく待って、Creation complete after 5m38sで五分ぐらい、BlueXP Connectorが作成されました。

もう少し待つと、CVOの作成も無事に完了です。Google Cloud Consoleから既にxxxx-vm(CVOとConnector両方)というVMインスタンスができました。

BlueXPのGUIにも設定したFreemiumのCVOが表示されます。

3.CVOにVolumeを追加・確認
- CVOにVolumeを追加・確認
こちらの記事「CVOにVloumeを追加」を参照し、CVOをクリックして、Add Volume->New volumeを選んでWizardに従って、最後Approveして追加します。

今回はテストの為、Disk TypeをPD-STANDARD、1GBにしました。
- mount確認
BlueXPのGUIからmountコマンドをコピーします。

BlueXPのconnectorにSSHで入って、こちらの「mount確認」を参照し、sudo yum install -y nfs-utilsをインストールします。ディレクトリを作成して、mountしてファイルを書き込むことができるのを確認します。
- クリーンアップ
terraform destroyを実行することで、今回作成したBlueXP ConnectorとCVOをDestruction complete after 1m14sのように短時間でクリーンアップすることができました。Google Cloud ConsoleとBlueXPのGUIからもCVOが削除されたことを確認できました
最後に
今回は、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