NetApp BlueXPを使ってAzure上にCloud Volumes ONTAPをデプロイしてみた（BlueXPのセットアップ編）

# はじめに
- 本記事では、NetAppのストレージやクラウドサービスを一元管理することができるコントロールプレーンである**NetApp BlueXP**を使って、Azure上に**Cloud Volumes ONTAP**をデプロイする手順をご紹介します。
- 長くなってしまったので2回に分けて投稿します。今回はBlueXPのセットアップ編です。後編の「CVOのデプロイ編」は[こちら](https://qiita.com/seijitanabe/items/11afb85c7ce280ff6ff8)。
 
# キーワード
## NeApp BlueXP
- NetApp BlueXP（以下、BlueXP）はオンプレミスのNetAppのストレージとパブリッククラウド（AWS、Azure、Google Cloud）にまたがるNetAppのストレージサービスを一元管理したり、NetAppが提供する様々なデータ管理サービスを利用することができるSaaS型のコントロールプレーンです。
- BlueXP自体は無償で利用することができ、付随する機能（サービス）によってそれぞれの機能（サービス）に対するコストが発生するという仕組みです。
- BlueXPでストレージを管理するには、BlueXP Connectorという管理用のコンポーネントが必要となってきます。これはVM上で稼働します。
- 今回のお目当てであるCloud Volumes ONTAPはBlueXPからデプロイ・管理する必要があるので、本記事ではこのBlueXPのセットアップとBlueXP Connectorのデプロイから実施していきます。

## Cloud Volumes ONTAP
- Cloud Volumes ONTAP（以下、CVO）は、NetAppのストレージに搭載されているストレージ専用OSである**ONTAP**をパブリッククラウド（AWS、Azure、Google Cloud）のIaaS上にデプロイすることができるサービスです。
- これにより、ONTAPが持つSnapshotや重複排除・圧縮、シンプロビジョニング、階層化などのストレージ管理機能を使って、パブリッククラウド上のストレージ管理を一元化したり、コストを削減したりといったことが可能になります。
- 今回はAzure上にデプロイしていきますが、AWSやGoogle CloudへのCVOのデプロイも含めて、BlueXP/CVOに関するQiita記事を本記事の最後にまとめています。興味があればご覧ください。
  
# 構成イメージ
- 最終的な構成イメージはこのような形になります。本記事ではこのCVO以外の部分を作っていきます。
![architecture.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/53c5f296-2755-85b9-1575-9b736a41cbf6.png)


# やってみた
## 事前準備
- まず、BlueXP connectorやCVOをデプロイするためのAzureの環境が必要です。以下を事前に準備する必要があります。
    - Azureアカウント
    - リソースグループ
    - VNet
    - サブネット
    - Azureアカウントの権限まわりの設定
- というわけで、早速上記の準備から取り掛かっていきます。
- 個人的に、これまでAzure CLIを使ったことがほぼなかったので、勉強を兼ねて今回はAzure CLIでやってみました。

:::note info
2023年2月中旬に実施した際の手順です。今後手順等が変わったらすみません。
:::

### Azureアカウントにログイン
- Azureのアカウントにログインします。
```bash:コマンド
az login
```
```bash:実行結果
A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.
```
- Webブラウザのログイン画面が起動するのでログインします。

### リソースグループの作成
- リソースグループを作成します。
```bash:コマンド
az group create --name st-cvo-test --location japaneast
```
```bash:実行結果
{
  "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/st-cvo-test",
  "location": "japaneast",
  "managedBy": null,
  "name": "st-cvo-test",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}
```
- リソースグループが作成されていることを確認します。作成されていました。
```bash:コマンド
az group list --query "[?name=='st-cvo-test']" --output table
```
```bash:実行結果
Name         Location
-----------  ----------
st-cvo-test  japaneast
```
### VNet、サブネットの作成
- VNetとサブネットを作成します。
```bash:コマンド
az network vnet create --name st-cvo-test-vnet --resource-group st-cvo-test --address-prefixes 10.0.0.0/16 --subnet-name st-cvo-test-subnet1 --subnet-prefixes 10.0.0.0/24
```
```bash:実行結果
{
  "newVNet": {
    "addressSpace": {
      "addressPrefixes": [
        "10.0.0.0/16"
      ]
    },
    "enableDdosProtection": false,
    "etag": "W/\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"",
    "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/st-cvo-test/providers/Microsoft.Network/virtualNetworks/st-cvo-test-vnet",
    "location": "japaneast",
    "name": "st-cvo-test-vnet",
    "provisioningState": "Succeeded",
    "resourceGroup": "st-cvo-test",
    "resourceGuid": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "subnets": [
      {
        "addressPrefix": "10.0.0.0/24",
        "delegations": [],
        "etag": "W/\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"",
        "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/st-cvo-test/providers/Microsoft.Network/virtualNetworks/st-cvo-test-vnet/subnets/st-cvo-test-subnet1",
        "name": "st-cvo-test-subnet1",
        "privateEndpointNetworkPolicies": "Disabled",
        "privateLinkServiceNetworkPolicies": "Enabled",
        "provisioningState": "Succeeded",
        "resourceGroup": "st-cvo-test",
        "type": "Microsoft.Network/virtualNetworks/subnets"
      }
    ],
    "type": "Microsoft.Network/virtualNetworks",
    "virtualNetworkPeerings": []
  }
}
```

- VNetとサブネットが作成されていることを確認します。作成されていました。
```bash:コマンド
az network vnet list --query "[?name=='st-cvo-test-vnet']"
```
```bash:実行結果
[
  {
    "addressSpace": {
      "addressPrefixes": [
        "10.0.0.0/16"
      ]
    },
    "enableDdosProtection": false,
    "etag": "W/\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"",
    "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/st-cvo-test/providers/Microsoft.Network/virtualNetworks/st-cvo-test-vnet",
    "location": "japaneast",
    "name": "st-cvo-test-vnet",
    "provisioningState": "Succeeded",
    "resourceGroup": "st-cvo-test",
    "resourceGuid": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "subnets": [
      {
        "addressPrefix": "10.0.0.0/24",
        "delegations": [],
        "etag": "W/\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"",
        "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/st-cvo-test/providers/Microsoft.Network/virtualNetworks/st-cvo-test-vnet/subnets/st-cvo-test-subnet1",
        "name": "st-cvo-test-subnet1",
        "privateEndpointNetworkPolicies": "Disabled",
        "privateLinkServiceNetworkPolicies": "Enabled",
        "provisioningState": "Succeeded",
        "resourceGroup": "st-cvo-test",
        "type": "Microsoft.Network/virtualNetworks/subnets"
      }
    ],
    "type": "Microsoft.Network/virtualNetworks",
    "virtualNetworkPeerings": []
  }
]
```

### Azureアカウントの権限設定（カスタムロールの作成と割り当て）
- 以下のJSONファイルを作成します。`"AssignableScopes"`のサブスクリプションIDは環境に合わせて修正します。
```json:bluexp-custom-role.json
{
    "Name": "BlueXP Conn SetupAsService",
    "Actions": [
        "Microsoft.Compute/disks/delete",
        "Microsoft.Compute/disks/read",
        "Microsoft.Compute/disks/write",
        "Microsoft.Compute/locations/operations/read",
        "Microsoft.Compute/operations/read",
        "Microsoft.Compute/virtualMachines/instanceView/read",
        "Microsoft.Compute/virtualMachines/read",
        "Microsoft.Compute/virtualMachines/write",
        "Microsoft.Compute/virtualMachines/delete",
        "Microsoft.Compute/virtualMachines/extensions/write",
        "Microsoft.Compute/virtualMachines/extensions/read",
        "Microsoft.Compute/availabilitySets/read",
        "Microsoft.Network/locations/operationResults/read",
        "Microsoft.Network/locations/operations/read",
        "Microsoft.Network/networkInterfaces/join/action",
        "Microsoft.Network/networkInterfaces/read",
        "Microsoft.Network/networkInterfaces/write",
        "Microsoft.Network/networkInterfaces/delete",
        "Microsoft.Network/networkSecurityGroups/join/action",
        "Microsoft.Network/networkSecurityGroups/read",
        "Microsoft.Network/networkSecurityGroups/write",
        "Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read",
        "Microsoft.Network/virtualNetworks/read",
        "Microsoft.Network/virtualNetworks/subnets/join/action",
        "Microsoft.Network/virtualNetworks/subnets/read",
        "Microsoft.Network/virtualNetworks/subnets/virtualMachines/read",
        "Microsoft.Network/virtualNetworks/virtualMachines/read",
        "Microsoft.Network/publicIPAddresses/write",
        "Microsoft.Network/publicIPAddresses/read",
        "Microsoft.Network/publicIPAddresses/delete",
        "Microsoft.Network/networkSecurityGroups/securityRules/read",
        "Microsoft.Network/networkSecurityGroups/securityRules/write",
        "Microsoft.Network/networkSecurityGroups/securityRules/delete",
        "Microsoft.Network/publicIPAddresses/join/action",
        "Microsoft.Network/locations/virtualNetworkAvailableEndpointServices/read",
        "Microsoft.Network/networkInterfaces/ipConfigurations/read",
        "Microsoft.Resources/deployments/operations/read",
        "Microsoft.Resources/deployments/read",
        "Microsoft.Resources/deployments/delete",
        "Microsoft.Resources/deployments/cancel/action",
        "Microsoft.Resources/deployments/validate/action",
        "Microsoft.Resources/resources/read",
        "Microsoft.Resources/subscriptions/operationresults/read",
        "Microsoft.Resources/subscriptions/resourceGroups/delete",
        "Microsoft.Resources/subscriptions/resourceGroups/read",
        "Microsoft.Resources/subscriptions/resourcegroups/resources/read",
        "Microsoft.Resources/subscriptions/resourceGroups/write",
        "Microsoft.Authorization/roleDefinitions/write",
        "Microsoft.Authorization/roleAssignments/write",
        "Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/read",
        "Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/write",
        "Microsoft.Network/networkSecurityGroups/delete",
        "Microsoft.Storage/storageAccounts/delete",
        "Microsoft.Storage/storageAccounts/write",
        "Microsoft.Resources/deployments/write",
        "Microsoft.Resources/deployments/operationStatuses/read",
        "Microsoft.Authorization/roleAssignments/read"
    ],
    "NotActions": [],
    "AssignableScopes": [
        "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    ],
    "Description": "BlueXP Conn SetupAsService",
    "IsCustom": "true"
}
```
- カスタムロールを作成します。
```bash:コマンド
az role definition create --role-definition bluexp-custom-role.json
```
```bash:実行結果
{
  "assignableScopes": [
    "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  ],
  "description": "BlueXP Conn SetupAsService",
  "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "permissions": [
    {
      "actions": [
        "Microsoft.Compute/disks/delete",
        "Microsoft.Compute/disks/read",
        "Microsoft.Compute/disks/write",
        "Microsoft.Compute/locations/operations/read",
        "Microsoft.Compute/operations/read",
        "Microsoft.Compute/virtualMachines/instanceView/read",
        "Microsoft.Compute/virtualMachines/read",
        "Microsoft.Compute/virtualMachines/write",
        "Microsoft.Compute/virtualMachines/delete",
        "Microsoft.Compute/virtualMachines/extensions/write",
        "Microsoft.Compute/virtualMachines/extensions/read",
        "Microsoft.Compute/availabilitySets/read",
        "Microsoft.Network/locations/operationResults/read",
        "Microsoft.Network/locations/operations/read",
        "Microsoft.Network/networkInterfaces/join/action",
        "Microsoft.Network/networkInterfaces/read",
        "Microsoft.Network/networkInterfaces/write",
        "Microsoft.Network/networkInterfaces/delete",
        "Microsoft.Network/networkSecurityGroups/join/action",
        "Microsoft.Network/networkSecurityGroups/read",
        "Microsoft.Network/networkSecurityGroups/write",
        "Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read",
        "Microsoft.Network/virtualNetworks/read",
        "Microsoft.Network/virtualNetworks/subnets/join/action",
        "Microsoft.Network/virtualNetworks/subnets/read",
        "Microsoft.Network/virtualNetworks/subnets/virtualMachines/read",
        "Microsoft.Network/virtualNetworks/virtualMachines/read",
        "Microsoft.Network/publicIPAddresses/write",
        "Microsoft.Network/publicIPAddresses/read",
        "Microsoft.Network/publicIPAddresses/delete",
        "Microsoft.Network/networkSecurityGroups/securityRules/read",
        "Microsoft.Network/networkSecurityGroups/securityRules/write",
        "Microsoft.Network/networkSecurityGroups/securityRules/delete",
        "Microsoft.Network/publicIPAddresses/join/action",
        "Microsoft.Network/locations/virtualNetworkAvailableEndpointServices/read",
        "Microsoft.Network/networkInterfaces/ipConfigurations/read",
        "Microsoft.Resources/deployments/operations/read",
        "Microsoft.Resources/deployments/read",
        "Microsoft.Resources/deployments/delete",
        "Microsoft.Resources/deployments/cancel/action",
        "Microsoft.Resources/deployments/validate/action",
        "Microsoft.Resources/resources/read",
        "Microsoft.Resources/subscriptions/operationresults/read",
        "Microsoft.Resources/subscriptions/resourceGroups/delete",
        "Microsoft.Resources/subscriptions/resourceGroups/read",
        "Microsoft.Resources/subscriptions/resourcegroups/resources/read",
        "Microsoft.Resources/subscriptions/resourceGroups/write",
        "Microsoft.Authorization/roleDefinitions/write",
        "Microsoft.Authorization/roleAssignments/write",
        "Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/read",
        "Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/write",
        "Microsoft.Network/networkSecurityGroups/delete",
        "Microsoft.Storage/storageAccounts/delete",
        "Microsoft.Storage/storageAccounts/write",
        "Microsoft.Resources/deployments/write",
        "Microsoft.Resources/deployments/operationStatuses/read",
        "Microsoft.Authorization/roleAssignments/read"
      ],
      "dataActions": [],
      "notActions": [],
      "notDataActions": []
    }
  ],
  "roleName": "BlueXP Conn SetupAsService",
  "roleType": "CustomRole",
  "type": "Microsoft.Authorization/roleDefinitions"
}
```

- カスタムロールが作成されていることを確認します。作成されていました。
```bash:コマンド
az role definition list --name "BlueXP Conn SetupAsService" --output table
```
```bash:実行結果
Name                        Type                                     Description
--------------------------  ---------------------------------------  --------------------------
BlueXP Conn SetupAsService  Microsoft.Authorization/roleDefinitions  BlueXP Conn SetupAsService
```

- ユーザー（もしくはグループ）にカスタムロールを割り当てます。グループの場合は`assignee`に対象グループのオブジェクトIDを指定します。
```bash:コマンド
az role assignment create --assignee "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" --role "BlueXP Conn SetupAsService" --subscription "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
```
```bash:実行結果
{
  "canDelegate": null,
  "condition": null,
  "conditionVersion": null,
  "description": null,
  "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Authorization/roleAssignments/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "principalId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "principalType": "Group",
  "roleDefinitionId": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "scope": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "type": "Microsoft.Authorization/roleAssignments"
}
```

- カスタムロールが割り当てられていることを確認します。割り当てられていました。
```bash:コマンド
az role assignment list --role "BlueXP Conn SetupAsService"
```
```bash:実行結果
[
  {
    "canDelegate": null,
    "condition": null,
    "conditionVersion": null,
    "description": null,
    "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Authorization/roleAssignments/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "principalId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "principalName": "XXXXX",
    "principalType": "Group",
    "roleDefinitionId": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "roleDefinitionName": "BlueXP Conn SetupAsService",
    "scope": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "type": "Microsoft.Authorization/roleAssignments"
  }
]
```

- これでBlueXP ConnectorをAzure上にデプロイするために必要なAzure側の環境が整いました。

## BlueXPのセットアップ
- BlueXP connectorのネットワーク要件は[こちら](https://docs.netapp.com/ja-jp/cloud-manager-setup-admin/task-creating-connectors-azure.html#%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%92%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%81%99%E3%82%8B)に記載の通りです。簡単に言うと、アウトバウンドのインターネットアクセスと、CVOなどの管理対象ストレージがあるネットワークへのアクセスが必要です。
- 今回は、BlueXP connectorとCVOは同じサブネット内にデプロイします。

### BlueXPへのログイン
- Webブラウザで[BlueXPコンソール](https://console.bluexp.netapp.com/)にアクセスしてログインします。
![bluexp_login.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/b6c4c849-3ad1-b15d-20da-76a0ca6e18b7.png)
:::note info
BlueXPのアカウントを作成していなければ、[こちらの手順](https://docs.netapp.com/ja-jp/cloud-manager-setup-admin/task-sign-up-saas.html)に従ってサインアップします。
:::

- ログインが完了すると、このようなcanvas画面になります。
![bluexp_initial_canvas.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/703c8ee9-6dcf-d991-9fb3-cb5096953dfc.png)

- Workspaceを新たに作成したり、ユーザーを追加できたりしますが、今回は割愛してデフォルトのワークスペース「Workspace-1」を使用します。

### BlueXP Connectorのデプロイ
- BlueXPコンソールの画面上部から「***Connector***」のドロップダウンをクリックし、「***Add Connector***」を選択します。「***Create your first Connector***」でもいいです。
![add_conn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/64b8abf7-ceeb-503b-1415-6b2ef9384db8.png)

- BlueXP Connectorをデプロイするクラウドプロバイダを選択します。今回はAzure上にデプロイするので「***Microsoft Azure***」を選択して、「***Continue***」をクリックします。
![add_conn_provider.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/bd56e088-6a71-0868-0e74-ee8663f43971.png)

- 権限やネットワークの設定などの事前準備は先ほど完了しているので、「***Skip Deployment***」をクリックします。
![add_conn_require.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/558b857a-4497-bf0e-4c9d-2c01dda314ff.png)

- Azureのアカウントへのログイン画面が表示されるのでログインします。
- 「Virtual Machine Authentication」の画面で以下の情報を入力し、「***Next***」をクリックします。
![add_conn_vm_auth.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/84c52864-bb72-8548-295a-b0afc278bcab.png)
    - Subscription: ***任意のサブスクリプション***
    - Location: ***VNetを作成したAzureのリージョン***
    - Resource Group: ***Use Existing*** - ***事前準備で作成したリソースグループを選択***
    - Authentication Method: ***任意の方法を設定***

- 「Details」の画面で以下の情報を入力し、「***Next***」をクリックします。
![add_conn_details.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/64c9e657-6f86-154c-230a-18992421b348.png)
   - Connector Instance Name: ***任意の名前***
   - Tag: 今回は割愛
   - Connector Role: 今回は「***Create***」にて新規作成。

- 「Network」の画面で以下の情報を入力し、「***Next***」をクリックします。
![add_conn_network.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/aad8a13a-7b94-8873-9381-6124a2d79775.png)
   - Connectivity
       - VNet: ***事前準備で作成したVNET***
       - Subnet: ***事前準備で作成したサブネット***
       - Public IP: ***Enable***
   - Proxy Configuration: 今回は設定しない

- 「Security Group」の画面で以下の情報を入力し、「***Next***」をクリックします。
![add_conn_securitygroup.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/98ca036c-f962-3f3e-25f8-1c5a231d6718.png)
    - Assign a security group: ***Create a new security group***
        - 今回はHTTP/HTTPS/SSHともSource Typeに「***My IP***」を選択

- 「Review」画面で設定内容を確認して、「***Add***」をクリックします。
![add_conn_review.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/992049b0-75f0-ebe0-273a-dc7ed90ed6c7.png)

- デプロイが開始されました。約7分かかるということなので待ちましょう。
![add_conn_deploying.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/16a5aaa7-4c5c-7615-e5c6-57f807af2364.png)

- デプロイが完了しました。「***Continue***」をクリックします。
![add_conn_created.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/0dab85b2-05f4-d772-f7df-e96d73ba91f8.png)

- canvas画面に戻り、「Connector」に今回作成したConnector名が表示されていることを確認します。
![bluexp_add_conn_canvas.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/b17a22f4-b1f4-9e8c-03ef-ec5945d65343.png)

- 以上でBlueXPのセットアップは完了です。

# まとめと次回予告
- Azure上にCVOをデプロイするための前準備として、Azure環境の準備とBlueXPのセットアップを行いました。
- Azure環境の準備はAzure CLIでやってみましたが、`--query`の使い方なども含めて色々試せたので勉強になりました。
- 次回の記事で、こちらの環境を利用してAzure上にCVOをデプロイしてみます。乞うご期待！
- 後編の「CVOのデプロイ編」は[こちら](https://qiita.com/seijitanabe/items/11afb85c7ce280ff6ff8)。


# 参考URL
- https://docs.netapp.com/ja-jp/cloud-manager-setup-admin/
- https://docs.netapp.com/ja-jp/cloud-manager-cloud-volumes-ontap/task-getting-started-azure.html

## BlueXP/CVO関連のQiita記事
- [NetApp BlueXPのご紹介](https://qiita.com/MandyZ/items/b6ef6b50a5f5e39c989f)
- [BlueXPのHealthってどんな機能？](https://qiita.com/hiroyukienomoto/items/164b18cecda151039a75)
- [NetApp BlueXPからONTAP環境のセキュリティを強化する](https://qiita.com/buriki/items/6615bfaff77c797399a3)
- [NetApp BlueXPを使ってAmazon FSx for NetApp ONTAPを構築してみた](https://qiita.com/MandyZ/items/e9d5adb4cfaf13c950e0)
- [NetApp BlueXPを使ってAWS上にCloud Volume ONTAPを構築してみた](https://qiita.com/Shengyu/items/337c5e12a7f211881c8e)
- [NetApp BlueXPを使って、Cloud Volumes ONTAPのデータをAmazon S3にバックアップ・リストアしてみた。](https://qiita.com/heyanxia/items/d1a72eec868ed8f57386)
- [Google Cloud Platform上にNetApp BlueXP Connectorを作成してみた](https://qiita.com/heyanxia/items/2d98f4e58507ae223b65)
- [BlueXPを使って、Google Cloud上にNetApp Cloud Volumes ONTAPを作成してみた](https://qiita.com/heyanxia/items/c7870b3bee82ca41283f)
- [[小ネタ]BlueXPのオンプレミスコネクターを使ってみる](https://qiita.com/yshimizu22/items/1cb2eca62a90d717fbac)