Japan VMUG March Meeting with Rubrik

2018 年 7 月の CAMP RUBRIK JAPAN で Session Speaker した際に,幸運にも Rubrik 社の Cheif Technologist である Chris と知り合いになることができ,その際に「次回は是非 VMUG に来て欲しい」と誘ったのですが,なんとその 8 ヶ月後に VMUG スピンオフ企画を実現することができました.

f:id:tcpninja:20190323190004j:plain
JAPAN VMUG Active Member と一緒に記念撮影.ベゼルにサインも.

Chris の Session 前に,VMUG Member で Backup・データ活用をテーマに発表・ディスカッションを行ったので,私の Session についてここで補足しておきます.

Rubrik は vSphere 環境の Backup を効率的かつトラブルフリーで実施してくれています.2018 年 6 月から本番運用していますが,Backup 由来の障害が全く発生せず,Sysadmin としては本当に Happy な日々を過ごせています.
設定も簡単で,最初に Rubrik 側であらかじめ SLA を定義しておきます.

f:id:tcpninja:20190323192143p:plain
Rubrik 側で SLA を定義

新しい VM を追加する際には,vCSA 側で SLA と紐づいた Folder に配置するだけで Backup 設定が完了してしまいます.

f:id:tcpninja:20190323192217p:plain
関連した Folder に VM を配置すれば Backup 設定完了!

こんなに簡単で便利なのですが,さらに嬉しいことに豊富な API が用意されているのです!
REST API のドキュメントは https://FQDN or IP Addr/docs/v1/ で参照できます.また,vSphere の API Explorer のように Swagger UI が用意されていて, https://FQDN or IP Addr/docs/v1/playground/ からアクセスできます.実際のリクエストを Swagger UI からテストできるのでかなり便利です.

f:id:tcpninja:20190325092343p:plain
Rubrik の Swagger UI

さらに,Chris は OpenSource Project として Rubrik Build を立ち上げていて,コミュニティとしての知見の共有にも力を入れてくれています.REST API で取得した json を Parse して処理するのはそれなりに煩雑だと思う方には,Rubrik の PowerShell Module がお薦めです.
(2019 年 3 月の時点では PowerCLI 6.0 以上が必要です.)

Module の追加は以下の通り,Execution Policy を確認して Install します.

PS /Users/kaz> Get-ExecutionPolicy                                                                                                           
Unrestricted

PS /Users/kaz> Install-Module -Name Rubrik -Scope CurrentUser                                                                                

Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running 
the Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): Y

正しく Install されていることを確認して,早速使ってみましょう.

PS /Users/kaz> Get-Module -ListAvailable -Name Rubrik                                                                                                                                                                                                                                                                                                                                                                                      Directory: /Users/kaz/.local/share/powershell/Modules                                                                                                                                                                                                                                 

ModuleType Version    Name                                ExportedCommands                                                                  
---------- -------    ----                                ----------------                                                                  
Script     4.0.0.220  Rubrik                              {Connect-Rubrik, Disconnect-Rubrik, Export-RubrikDatabase, Export-RubrikReport...}

まず最初に,接続の準備をします.今回は $Credential 変数に認証情報を格納します.

PS /Users/kaz> $Credential = Get-Credential                                                                                                                                                                                                                                               
PowerShell credential request
Enter your credentials.
User: admin
Password for user admin: ************

この Credential を使って rubrik に接続します.

PS /Users/kaz> Connect-Rubrik -Server FQDN_or_IPAddr -Credential $Credential                                                                     
                                                                                                                                             
Name                           Value                                                                                                         
----                           -----                                                                                                         
header                         {Authorization}                                                                                               
id                             1222cd00-xxxx-4f27-baef-e478cccc2762                                                                         
api                            1                                                                                                            
version                        4.2.1-p2-1467                                                                                                
time                           2019/03/12 21:25:23                                                                                          
userId                         81e88496-da5e-xxxx-bfb8-bfd54aece87b                                                                         
server                         FQDN_or_IPAddr

Get-RubrikVersion を実行すると,Version 情報に加え,Geo Location 等も確認できます.

PS /Users/kaz> Get-RubrikVersion                                                                                                             
                                                                                                                                                                                                                                                                                          
id                  : 20xxxf0a-7f65-xxxx-a1ca-1bb96ccb2d02                                                                                   
version             : 4.2.1-p2-1467                                                                                                          
apiVersion          : 1
name                : hogehoge
timezone            : @{timezone=Asia/Tokyo}
geolocation         : @{address=Seijō, ●●●区 東京都 日本}
acceptedEulaVersion : 1.0
latestEulaVersion   : 1.0

Introduction to the Rubrik SDK for PowerShell の Cmdlet サンプルを参考に,SLA 毎の VM 数をサマリー表示させてみます.

PS /Users/kaz> Get-RubrikVM | Where-Object {$_.EffectiveSlaDomainName -ne 'Unprotected'} | Group-Object -Property EffectiveSlaDomainName | Sort-Object -Property Count -Descending                                                                                                            
                                                                                                                                               
Count Name                 Group                                                                                                          
----- ----                 -----                                                                                                             
   46 XXX-silver           {@{hostName=xxxesxXX.xxx.ac.jp; effectiveSlaDomainId=0cbfddde-xxxx-490c-9a7d-a29ccccca2e3; primaryCluster... 
    2 XXX-bronze           {@{hostName=xxxesxXY.xxx.ac.jp; effectiveSlaDomainId=7e7cab39-3175-xxxx-bbfb-531b8bbbbb50; primaryCluster...

Chris によると,Rubrik 社は GUI, CLI, API の全てにおいて共通のコマンドセットを実装する予定だそうです.
私もこの年度末の繁忙期を乗り越えたら PoshBot 使って色々試してみようと思います.

Thanks Chris and Roxie !!

f:id:tcpninja:20190325124120j:plain
Roxie のお気に入りのユーザグループは VMUG Japan !