はじめに
前回は、以下の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