Azure Arc対応VMware vSphereを試してみる

## 概要
Azure Arc対応VMware vSphereとは
https://learn.microsoft.com/ja-jp/azure/azure-arc/vmware-vsphere/overview
> Azure Arc 対応 VMware vSphere (プレビュー) は、Azure のガバナンスと管理機能を VMware vSphere インフラストラクチャに拡張します。 Azure Arc 対応 VMware vSphere を使用すると、Azure と VMware vSphere インフラストラクチャ間で一貫した管理を実行できます。
> 
> Arc 対応 VMware vSphere (プレビュー) を使用すると、次の操作を実行できます。
> - 作成、開始/停止、サイズ変更、削除などのさまざまな VMware 仮想マシン (VM) ライフサイクル操作を Azure から直接実行できます。
> - Azure ロールベースのアクセス制御 (RBAC) を使用して、開発者とアプリケーション チームがオンデマンドで VM 操作をセルフサービスで実行できます。
> - Azure で VMware vSphere リソース (VM、テンプレート、ネットワーク、ストレージ) を参照し、両方の環境のインフラストラクチャを単一のウィンドウに表示できます。 また、既存の VMware VM を検出して Azure にオンボードできます。
> - ゲスト管理を有効にすることで (Azure Arc 対応サーバー Connected Machine エージェントをインストールします)、Azure VM と VMware VM 全体でガバナンスと監視の操作を実行します。

公式ページの解説によると、オンプレミスにArcリソースブリッジの仮想マシン（内部ではKubernetesクラスターをホストする）が配置され、Azure側にもArcリソースブリッジのARMリソースが作成され、その2つのリソースが接続されることでAzure PortalからVMware vSphereの操作が可能となる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3359374/8441c662-951e-6734-3e73-4d40fc7af942.png)
> 引用：https://learn.microsoft.com/ja-jp/azure/azure-arc/resource-bridge/overview

## 環境
- vCenter/ESXi : 7.0u3

## 事前準備
1. vSphere
    - 4vCPU、16GBメモリが予約されているリソースプールを作成しておく（名前は任意なのでRP-Arcとした）
    - 100GB以上の空きがあるデータストア
    - ヘルパースクリプトを実行するVM
        - WindowsでもLinuxでもどちらでもよい、今回はRocky Linux 8.7のVMを用意した
        - Azure CLIをインストールしておく
2. Azure
    - 共同作成者、所有者のロール持つリソースグループ

## 手順：ヘルパー スクリプトを使用して VMware vCenter Server を Azure Arc に接続する
公式のクイックスタートに沿って実施していく。
https://learn.microsoft.com/ja-jp/azure/azure-arc/vmware-vsphere/quick-start-connect-vcenter-to-arc-using-script

### 1. オンボードスクリプトのダウンロード
1. リソースブリッジを新規作成
    - 2023.6時点では日本のリージョンはサポートされていないため、適当に Southeast Asia を選択
    - リソースブリッジ名、カスタムの場所、Azure内のvCenter名、は公式ガイドの例と同じ名前を使用
2. タグは何も付けずに次へ
3. スクリプトをダウンロード

### 2. スクリプトを実行
公式ガイドのとおり、30 分から 60 分ほど時間がかかる。
インストールが完了すると、インストール時のログ、3つのyamlファイル（構成ファイル）、kubeconfigファイルがスクリプト実行フォルダにある。

```
# ls -l
-rw-r--r-- 1 root root 164782  6月 25 15:26 arcvmware-output.log
-rw-r--r-- 1 root root    194  6月 25 15:01 contoso-nyc-resourcebridge-appliance.yaml
-rw-r--r-- 1 root root    434  6月 25 15:00 contoso-nyc-resourcebridge-infra.yaml
-rw-r--r-- 1 root root    150  6月 25 14:57 contoso-nyc-resourcebridge-resource.yaml
-rw-r--r-- 1 root root   7357  6月 25 15:14 kubeconfig
```

### 3. 状態確認
RP-Arcの配下にリソースブリッジが作成されている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3359374/f4f7cc81-dd05-1eb4-b57c-d53138808adf.png)

リソースブリッジの内部を確認する。
NodeやPodは見えるが、`applianceuser` というUserの権限では全ての中身が見えるわけではないようだ。

https://gist.github.com/tadashota212/b3f38cae6e10b48b9746ebf629bc697f

## 手順：Azure での VMware vCenter リソースの有効化
こちらも公式ガイドに沿って行う。
https://learn.microsoft.com/ja-jp/azure/azure-arc/vmware-vsphere/browse-and-enable-vcenter-resources-in-azure

デフォルトでは、いずれのリソースも`Azureで有効`にはなっていない。全て有効にしてしまっても問題なさそうだが、とりあえず仮想マシンは2,3個だけにしておくことに。
- リソースプール/クラスター/ホスト、テンプレート、ネットワーク、データストア、は全て有効に
- 仮想マシンは適当に2,3個選んで有効に

有効化した仮想マシン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3359374/b855873d-1c89-aba9-50e4-2e359a0f4719.png)
現時点では有効化できる拡張はこの2つのみ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3359374/3186ac80-d984-d416-a8d6-67129619a533.png)

有効化した仮想マシンにはConnected Machine Agent がインストールされる。
```
[root@vm-01 ~]# systemctl status himdsd.service
● himdsd.service - Azure Connected Machine Agent Service
   Loaded: loaded (/usr/lib/systemd/system/himdsd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2023-06-19 23:08:58 JST; 5 days ago
 Main PID: 24711 (himds)
    Tasks: 7 (limit: 2710)
   Memory: 16.1M
   CGroup: /system.slice/himdsd.service
           mq24711 /opt/azcmagent/bin/himds

 6月 19 23:08:58 vm-01 systemd[1]: Started Azure Connected Machine Agent Service.
[root@vm-01 ~]#
```

Azure Portalからvm-01を停止、vCPU数を変更、vm-01を起動してみると、vCenter側にも反映されている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3359374/13abe752-23d2-c4f5-6dee-b9a963aca11e.png)

## まとめ
Azure Arc対応VMware vSphereを使うことで、Azure Portalからデプロイ先をvSphereとして仮想マシンを作成できるほか、vSphere上にある既設の仮想マシンも起動/停止やサイズ変更などができる。有効にした仮想マシンはAzure Arc対応サーバーと同じくConnected Machine Agentがインストールされるが、Azure Arc対応VMware vSphereはパブリックプレビュー期間中のため、使用できる拡張機能は2つのみ。