[小ネタ]BlueXPのオンプレミスコネクターを使ってみる

# この記事の要約
### やったこと
- [NetApp BlueXP](https://bluexp.netapp.com/ja/)でインターネットからインバウンドアクセスできない機器を管理するために**オンプレミスコネクター**を導入した

### どんなメリットがあるの？
- 各クラウドプロバイダーとのVPN接続などを準備しなくとも、BlueXPの各種機能を使える様になります
- コネクターのインスタンス料金を節約できます(微々たるものですが…)

# BlueXPについて（ざっくり）
**NetAppのサービスやプロダクトに一元的にアクセスできるポータル**です。
例えばこんな感じのキャンバス上でドラッグ&ドロップするだけでオンプレ-クラウド間のデータ連携なんかが設定できたりします。
![スクリーンショット 2022-12-28 0.52.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436161/a54997c3-4bf9-ec76-3e50-fbc3ffafd65f.png)

BlueXP自体の詳しい説明やユースケースは弊社メンバーがポストしていますのでそちらを是非ご覧ください。

[NetApp BlueXPのご紹介](https://qiita.com/MandyZ/items/b6ef6b50a5f5e39c989f)
[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)

## BlueXPのコネクターについて
**コネクターはBlueXPの機能を実現する上で重要となるコンポーネントです。**
BlueXPから使用できる大体のサービスではコネクターを介して対象のストレージやクラウドサービスを制御します。
従ってBlueXPを初めて使っていただく際、大抵のケースではまずはコネクターをデプロイしろと言われることになるかと思います。



「BlueXPでオンプレONTAP間のSnapMirror設定してみよ」
↓
![スクリーンショット 2022-12-27 22.14.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436161/f0891663-942a-82a3-20f9-f047f81cebc8.png)
↓
「あ、どこかのクラウド上になんかインスタンス建てなきゃいけないんだ」
↓
「てことはオンプレの機器管理するならDNATなりVPNなりが必要ってこと？」
↓
「BlueXP使わなくても、普通にONTAP上でSnapMirror設定すればいいか…」
↓
終

### 代替策： オンプレミスコネクター

BlueXPのコネクターですが**実はオンプレミス環境にもデプロイすることができます。**
(私が見た限り)BlueXPのコンソール上では全くその存在を伺い知ることはできませんが、公式ドキュメントには記載があります。

https://docs.netapp.com/ja-jp/cloud-manager-setup-admin/task-installing-linux.html

この**オンプレミスコネクター**を使うことによって、各クラウドからのインバウンドアクセスを設定しなくともオンプレの機器をBlueXPで管理できる様になります。

ちなみにアウトバウンドも含めてインターネットと全く通信できない環境でも使えます。
その場合、コネクターが接続するBlueXPのサービス自体もオンプレミス環境内でホストすることになります。

https://docs.netapp.com/ja-jp/cloud-manager-setup-admin/task-install-connector-onprem-no-internet.html


# オンプレミスコネクターをデプロイしてみた
以下の必要なものが準備できていれば**だいたい10分くらい**で設定できます。

## 必要なもの
詳細は[こちら](https://docs.netapp.com/us-en/cloud-manager-setup-admin/task-installing-linux.html#verify-host-requirements)
- コネクターをインストールするサーバ
    - CentOS または Red Hat Enterprise Linux
        - ベアメタルまたは各OSがサポートするハイパーバイザ上でホストされていること
    - 要求スペック
        - 4コアまたは4vCPU
        - 14GBのメモリ
        - ディスク
            - /opt配下: 100GBの空き容量
            - /var配下: 20GBの空き容量
    - Docker Engine v19.3.1以降
    - NetAppサポートサイトなど、インターネット上でホストされているいくつかのサービスへ接続できること　
        - こちらの要件はアウトバウンドでインターネットに出れる環境の場合のみ

- NetAppのアカウント

## 導入手順
:::note
今回は**CentOS 7.9**を使ってオンプレミスコネクタを導入します。
また**インターネットへのアウトバウンドアクセスはできる**環境です。
:::

まずはDockerを起動 & 再起動後も自動起動するように設定します
```bash
$ sudo systemctl enable docker && sudo systemctl start docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
```
つぎに[NetAppサポートサイト](https://mysupport.netapp.com/site/products/all/details/cloud-manager/downloads-tab)からコネクターのインストーラをダウンロードします。
インターネットに接続できるか否かでダウンロードするパッケージが異なるので注意です。
![スクリーンショット 2022-12-27 21.34.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436161/b1d97a05-ee42-81c4-eaab-5dcc98ae1bfa.png)

ダウンロードしたスクリプトに実行権を付与して実行
```
$ chmod +x OnCommandCloudManager-V3.9.23
```
```
$ ./OnCommandCloudManager-V3.9.23
[✔] Verifying root permissions
[✔] Verifying memory OK
[✔] Verifying CPU OK
[✔] Verifying Docker version OK
20.10.22
[✔] Verify Docker service is enabled OK
[✔] Verifying network OK
.---------------------------------------------------------------------.
| URL                                                        | status |
|------------------------------------------------------------+--------|
| https://support.netapp.com                                 | OK     |
|------------------------------------------------------------+--------|
| https://cloudmanager.cloud.netapp.com/tenancy/health       | OK     |
|------------------------------------------------------------+--------|
| https://stream.cloudmanager.cloud.netapp.com               | OK     |
|------------------------------------------------------------+--------|
| https://cloudmanagerinfraprod.azurecr.io                   | OK     |
|------------------------------------------------------------+--------|
| https://production-artifacts.cloudmanager.cloud.netapp.com | OK     |
'---------------------------------------------------------------------'
[✔] Extracting service manager binary OK
Extracted to /opt/application/netapp/service-manager-2
[✔] Extracting service manager service OK
Extracted to /opt/application/netapp/service-manager-2
[✔] Extracting docker-compose OK
Extracted to /usr/bin/
[✔] Setting docker-compose executable OK
[✔] Verifying docker-compose version OK
1.29.2
[✔] Setting configuration OK
[✔] Update OS and Docker daemon settings OK
Skipped because no proxy
[✔] Installing Service OK
[✔] Waiting for OCCM OK
```

スクリプトが完了したら```https://<コネクターをインストールしたホスト>```にアクセスします。
その後はGUIに従ってNetAppアカウントやコネクターの名前などを設定します。
![スクリーンショット 2022-12-27 21.43.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436161/64d6e932-0680-229f-8f15-8e9aef79b2a8.png)

設定が完了するとインターネット上にあるBlueXPのサービスへリダイレクトされます。
この際、画面右上のConnectorをクリックするとオンプレミスのコネクターが正常に動作しており、BlueXPのサービス側と接続できていることがわかります。
![スクリーンショット 2022-12-27 21.50.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436161/27841919-6853-4282-c837-9ad85425dfc9.png)

あとは通常のコネクターを使用する際と変わらず、BlueXPの各機能が使えます。
（オンプレ環境のStorageGRIDとONTAP間でデータ連携してみたの図）
![スクリーンショット 2022-12-28 1.10.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436161/cd7be125-6c8d-84e7-5475-a2ebb02dc494.png)

# まとめ
オンプレミスコネクターは主に「オンプレ-オンプレ間のデータ連携をBlueXPで管理する」などのユースケースで有効な選択肢になるかと思います。

オンプレ-クラウド/クラウド-クラウドなユースケースでももちろん使えるのですが、その場合BlueXPの使用有無に関わらずVPNやらダイレクトコネクトやら導入することになると思うのでわざわざオンプレでコネクターをホストするメリットはあまり無いかも…？