はじめに
こちらの記事「Google Cloud Platform上にNetApp BlueXP Connectorを作成してみた」ではBlueXPのGUIにより、connectorを作成する方法を簡単にご紹介しました。今回はGoogle Cloud ShellのCLIより、TerraformのテンプレートでBlueXP Connectorを作成してみたいです。
- BlueXPのGUIから作成するイメージ:
- Google Cloud Shellから作成するイメージ:
- ChatGPTに聞く:
始める前に、そもそもBlueXPとは?疑問をお持ちの方は、こちらのKeywordから詳細を確認できます。せっかくなら、最近話題になっているOpenAIのChatGPTに聞いてみました。Terraformを使ってNetApp BlueXP ConnectorをGoogle Cloud Platformに作成することは可能です。

また、ChatGPTにNetApp BlueXP ConnectorのTerraform テンプレートを生成し見ました。テンプレートはある程度のサンプルなので、要確認・修正です。今回は公開されている「terraform: netapp-cloudmanager LATEST VERSION 23.1.1」により、最新バージョン23.1.1にします。

このサンプルのテンプレートを参考して作成してみます。
手順
1.Terraform templateに必要な準備
2.Google Cloud Shellから作成
1.Terraform templateに必要な準備
- Create service account & enable API
まずこちらの「Terraform Registry Providers: netapp-cloudmanager_connector_gcp LATEST VERSION 23.1.1」ガイドから必要な条件を確認します。Google Cloud リソースを利用する為、service accountが必要です。

BlueXPのGUIからConnectorを作成すると同じように、Google Cloud上にservice accountが必要です。こちら「Create Service accounts」の手順を参照して作成します。

Service accountができたら、Google Cloud Consoleから確認できます。

Create new keyで下記のようなJsonファイルを保存して後ほど使います。

こちら「Enable Google Cloud APIs」を参照してBlueXP Connectorを作成するのに必要なAPIをenableします。 - BlueXPのGUIより、サンプルテンプレートを自動作成
BlueXPのGUIからリージョンやゾンなどを指定して、より手軽にテンプレートを生成することができます。BlueXPのGUIから先程作成したService accountを選びします。

自動生成したCode for Terraform Automationを保存して、今後Connectorを作成する時に利用きます。注意:provider = "netapp-cloud-managerをprovider = netapp-cloudmanagerに変更する必要があります。

service_account_path = FILL_MEは後ほどCLIで実行する時、上記のCreate new keyで保存したJsonファイルにします。 -
refresh_token
こちらにアクセスしてNetApp refresh tokenを作成します。

ここまではTerraformテンプレートに必要な準備は完了です。下記のTerraformテンプレートをmain.tfとしてGoogle Cloud Shellに作成します。
2.Google Cloud ShellからBlueXP connectorを作成
Google Cloud Consoleから、Cloud Shellにアクセスして、上記のCreate new keyのJsonファイルをbluexp_service_account.jsonにコピーします。main.tfの中身は、provider = "netapp-cloudmanager"、version = "23.1.1"とservice_account_pathなどを間違いない様に確認します。

-
terraform init
Google Cloud Shellには既にTerraformが入ってるので、インストールする必要はありません。他のVMで実行する時には事前にインストールする必要があります。terraform -vでバージョンを確認して、terraform initを実行します。
-
terraform apply
次は、terraform applyしてconnectorを作成します。終わるまでにちょっと時間がかかりますが、途中でREFRESHするとVMができる様になります。

Apply completeになると、BlueXPのGUIから自動にActiveとして反映されます。
- BlueXPを確認
作成したConnectorの動作確認するために、BlueXPのGUIからCloud SyncのData brokerを作ってみて、無事にできました。
-
terraform destroy
今回terraformテンプレートで作成したConnectorを削除するにはterraform destroyコマンドで簡単にできます。Connectorの動作確認で作成したData broker VMは手動で削除します。

注意:今回はテストの為terraformからconnectorだけを作成したので、terraform destroyでリソースを指定せずにクリーンナップした。
注意事項
Failed to generate a tokeの場合はrefresh tokenが期限切れになる可能性があります。こちら:refresh-tokenから再生成できます。

最後に
Terraformのテンプレートを使って、Google Cloud上にBlueXP Connectorを作成することができました。今回は必要なService acountをGoogle Cloud Shell CLIより作成しましたが、Terraform:google_service_accountのガイドにより、Service accountもTerraformで作成できると記載されています。
参考リンク
1.Terraform
2.NetApp/terraform-provider-netapp-cloudmanager
3.NetApp Cloud Manager connector for GCP
4.refresh-token
5.Terraform:netapp-cloudmanager
6.Terraform tutorials:Google Cloud Platform Build
7.netapp-cloudmanager_connector_gcp: service_account_path
8.Google Cloud Platform上にNetApp BlueXP Connectorを作成してみた
9.Cloud AutomationTerraform & BlueXP Console: How to Use BlueXP Console Terraform Provider