はじめに
vCSA には、以前から vROps Client Plugin がバンドルされており、vSphere Client から簡単に vRealize Operations Manager のインスタンスをデプロイできました。
7.0 でもこれは健在なので、おうち vROps の実現を目指します。vROps のデプロイは OVF から手作りしたとしてもそもそもそこまで難しいものでもないのですが、この方法ではより一層簡単です。
……と思っていたらハマったので、その解決策も含んだお話です。
vROps Client Plugin でのデプロイ
プラグインの確認
vSphere Client の [管理]
> [クライアントプラグイン]
の画面では、VMware vROps Client Plugin の存在が確認できます。このプラグインにより、vROps の vSphere Client への統合が実現されていて、今回のようなデプロイや、簡単なダッシュボードの閲覧が可能です。
手元の環境では、プラグインのバージョンは、vSphere Client のバージョンと同じ 7.0.0.10400
(7.0.0b
)でした。
参考ドキュメント
vRealize Operations Manager それ自体は、ドキュメントは充実しています。プラグインを使わない構築手順などもいつも通り用意されています。
ただ、vROps Clinet Plugin については、7.0 版のドキュメントがまだなさそう? です。それでも 6.7 版はあり、だいたい一緒なので、ほとんどそのまま参考にできそうです。
この方式での制約
- vROps 自体の最新は 8.1 ですが、今回の方式では、執筆時点では 8.0.0(
vRealize-Operations-Manager-Appliance-8.0.0.14857692_OVF10.ovf
)が降ってきました。必ずしも最新が降ってくるということではなく、プラグインのバージョンにも依存するのかもしれません - ライセンスキーを投入しない限り、60 日の評価版扱いになります
- 見た感じ、vROps 本来のインストールを行った場合の、高速インストール に相当 する仕上がりになりそうです。ノード名など細かい指定ができません
- できあがるのは、マスターノードがひとつだけ のクラスタです。マルチノードにするには、このあとで追加で作業(プラグインは使わない)が必要です
- デプロイメントサイズにラボ環境でよく使う 極小 が 選べません。小、中、大、特大、の四択でした。極小をデプロイする場合は、
手順
最初からハマりどころですが、おそらくバグで、日本語 UI だと失敗します。まずは vSphere Client の環境設定で、UI を英語に変更します。この挙動については、後述の トラブルシュート で紹介しています。
英語 UI にできたら、メニュから [vRealize Operations]
を開きます。vROps の導入後はここが簡単なダッシュボードになるわけですが、構築前の段階ではインストールや既存インスタンスの登録のための画面です。
[INSTALL]
を押下すると、ウィザードが起動します。vROps Manager のアプライアンスイメージ(OVF ファイル)を自動でインタネットからダウンロードさせるにはオンラインモードを、手元の OVA ファイルをアップロードして利用する場合はオフラインモードを選択します。
あとは、インストール先の vCenter Server の認証情報を入力して、
配置先の情報や、必要なパラメータを入力していくだけです。先述の通り、デプロイサイズに 極小は選べません。
現在操作中の vCSA をそのまま今回デプロイする vROps の監視対象とする場合は、ここでチェックを入れると、必要な登録作業も自動で行ってくれます。
あとは [INSTALL]
を押下するだけです。
手元の環境で、だいたい 30 分くらいで完成しました。
この画面では、右上の [Quick Links]
からいくつかのページを切り替えられますが、概要レベルのダッシュボードしか閲覧できません。
より細かい確認や操作をしたい場合は、通常の vROps と同様、直接さわる必要があります。vROps のインスタンスの画面は、画面上部か [Quick Links]
内のリンクから開けます。
初期設定
この方法でデプロイした場合、ユーザ名は admin
、パスワードは Vmware@123
でログインできます。
初回ログイン後は、インスタンスの初期設定画面が開きます。EULA への同意や、ライセンスキーの投入、CEIP の構成などを行います。
ライセンスキーは、設定しない場合は評価版になります。デプロイしてから 60 日です。
最後の画面で [完了]
すると、あとは普通の vROps です。
先述したとおり、高速インストール 相当の簡易設定しかされていないので、
- パスワードの変更
- NTP の設定
あたりは少なくとも実施したほうがよいでしょう。
ほか、ui/
でなく admin/
にアクセスすると、クラスタの管理なども行えます。
トラブルシュート: 日本語 UI だとデプロイできない
最初、日本語の UI のままで操作をしていたのですが、[インストール]
を押下したあと、のほほんと待っていたら、失敗しました。こんなメッセージです。
ステータス: vROps のインストールに失敗しました…
現在の状態: OVF のデプロイが失敗しました
少し調べると、
- インベントリに仮想マシンができていない
- タスクの履歴を見ても、OVF テンプレートのデプロイが行われた形跡が一切ない
な感じで、そもそもデプロイが走っていませんでした。複数回試行しても状況は変わらず。
とりあえずログを見てみます。vCSA の /storage/log/vmware/vsphere-ui/logs/vsphere_client_virgo.log
です。この中の、
com.vmware.vropspluginui.*
com.vmware.unicorn.installer.InstallVrops
com.vmware.vrealize.lcm.*
あたりを追いかけると、
[INFO ] http-nio-5090-exec-135 com.vmware.vropspluginui.mvc.ServicesController Installation type : online
[INFO ] http-nio-5090-exec-135 com.vmware.unicorn.installer.InstallVrops Execute Method
[INFO ] http-nio-5090-exec-135 com.vmware.unicorn.installer.InstallVrops [initiateDeployVROPS] - Initiating deploy VROPS Instance
[INFO ] http-nio-5090-exec-135 com.vmware.unicorn.installer.InstallVrops buildurlhttps://********/vRealize-Operations-Manager-Appliance-8.0.0.14857692_OVF10.ova
...
[INFO ] http-nio-5090-exec-135 c.v.vrealize.lcm.drivers.vsphere65.deploy.impl.BaseOvfDeploy OVA Extraction folder is :/tmp/conf/ovf//vRealize-Operations-Manager-Appliance-8.0.0.14857692_OVF10
[INFO ] http-nio-5090-exec-135 c.v.vrealize.lcm.drivers.vsphere65.vlsi.utils.OVAExtractHelper Starting to extract the OVA from https://********/vRealize-Operations-Manager-Appliance-8.0.0.14857692_OVF10.ova
[INFO ] http-nio-5090-exec-135 c.v.vrealize.lcm.drivers.vsphere65.deploy.impl.BaseOvfDeploy OVF file after extraction: /tmp/conf/ovf/vRealize-Operations-Manager-Appliance-8.0.0.14857692_OVF10/vRealize-Operations-Manager-Appliance-8.0.0.14857692_OVF10.ovf
...
[INFO ] http-nio-5090-exec-135 c.v.vrealize.lcm.drivers.vsphere65.deploy.impl.BaseOvfDeploy Cluster provided is: kuro-hc01
[INFO ] http-nio-5090-exec-135 c.v.vrealize.lcm.drivers.vsphere65.deploy.impl.BaseOvfDeploy VC will select the host itself. resourcePool if provided will be used
[INFO ] http-nio-5090-exec-135 com.vmware.vrealize.lcm.drivers.vsphere65.vlsi.utils.CoreUtility ResourcePool not provided. Using the defaultresgroup-8
[INFO ] http-nio-5090-exec-135 com.vmware.vrealize.lcm.drivers.vsphere65.vlsi.utils.CoreUtility Datastore found for DC and cluster: local-ds02
[INFO ] http-nio-5090-exec-135 c.v.vrealize.lcm.drivers.vsphere65.deploy.impl.BaseOvfDeploy Getting OvfManager from VC ServiceContent
[INFO ] http-nio-5090-exec-135 c.v.vrealize.lcm.drivers.vsphere65.deploy.impl.BaseOvfDeploy Getting VM folder from Datastore
[INFO ] http-nio-5090-exec-135 c.v.vrealize.lcm.drivers.vsphere65.deploy.impl.BaseOvfDeploy Returning VMfoldergroup-v3
[INFO ] http-nio-5090-exec-135 c.v.vrealize.lcm.drivers.vsphere65.deploy.impl.BaseOvfDeploy Creating Import result
[INFO ] http-nio-5090-exec-135 c.v.vrealize.lcm.drivers.vsphere65.deploy.impl.BaseOvfDeploy creating import params
[ERROR] http-nio-5090-exec-135 com.vmware.unicorn.installer.InstallVrops [initiateDeployVROPS] - Failed to install vrops : A specified parameter was not correct: cisp.deploymentOption
[INFO ] http-nio-5090-exec-135 com.vmware.vropspluginui.mvc.ServicesController installvrops Controller End
...
な感じ(一部マスクしています)で、19 行目の通り、OVF のデプロイに渡すパラメータのうちのなにかがダメで死んでいそうです。
Failed to install vrops : A specified parameter was not correct: cisp.deploymentOption
リリースノートの Known Issue にも近い事象はなく、以下の類似の KB には vSphere 7.0 では試しようのない解決策しか書いてありません。
こういう、よくわからず困ったときは、ググりやすいようにメッセージを英語にするため、UI を英語 にするとよいものです。
で、英語にできたので、英語のエラーメッセージを確認すべく再試行したわけですが、そうしたら 再現しませんでした。若干信じがたかったので、いちど vROps を消して再試行しましたが、やはり日本語だとダメで、英語だとうまくいくように見えました。
となると、言語環境の問題とアタリがつけられます。ウィザードで入力したパラメータ群は、デプロイをキックする別の API に何らかの形で渡されていることが想像できるので、API リクエストのペイロードを追ってみます。怪しいのは、日本語の UI で [インストール]
を押下したときに送られている中身ですね。
すると、輝く日本語。
deploymentConfig: "小"
なるほど、これはもう完全に怪しいですね。英語で操作するとここは "Small"
になるようです。
もう一歩切り分けるため、"小"
を "Small"
にだけ変えて、このセッションの API リクエストを、ヘッダもクッキーも全部まるっとリプレイしてみます(見せるべきものでもないのでいろいろ隠しています。
$ curl -s 'https://kuro-vcs01.krkb.lab/ui/vropspluginui/rest/services/vropsinstallation' \
> ...
> -H 'referer: https://kuro-vcs01.krkb.lab/ui/vropspluginui/resources/index.html?locale=ja_JP' \
> -H 'accept-language: ja-JP,ja;q=0.9,en;q=0.8' \
> -H 'cookie: VSPHERE-USERNAME=Administrator%40VSPHERE.LOCAL; VSPHERE-CLIENT-SESSION-INDEX=********; VSPHERE-UI-JSESSIONID=********; VSPHERE-UI-XSRF-TOKEN=********; ...'
> --data-binary '{"vcDetails":{...},"hostDetails":{"datacenter":"kuro-dc01","cluster":"kuro-hc01","host":"kuro-esxi02.krkb.lab","datastore":"local-ds02","network":"vlan01-ext192","deploymentConfig":"Small"},"networkDetails":{...},"installationmode":"online","vmName":"kuro-vro01","vcAdapterConf":{...}}' \
> --compressed \
> --insecure
The Deployment Process Started
そのまましばらく待つと、無事に完成しました。
ということで、どうやらローカライズ関連のバグのようなものだと言えそうです。評価用ライセンスでサポートケースもオープンできないのですが、既知か未知かよくわかりません……。
まとめ
vROps のプラグインをつかって、vSphere 環境に vROps をデプロイし、設定しました。
すごく簡単…… のはずだったのに言語の壁があったのは予想外でしたが、それはそれで、トラブルシュートはよいお勉強になりますし、実装を掘っていくのはたのしいですし、総じてよい機会でした。
AWS や Azure の情報も vROps に食べさせられるみたいなので、この辺もそのうちさわってみましょう。
追記
後日追加で確認したところ、本エントリで記載した 日本語 UI ではインストールが失敗する問題 は、エントリ中の 7.0.0.10400
(7.0.0b
)だけでなく 7.0.0.10600
(7.0.0c
)でも再現しました。
とても軽微だし既知かもしれないとは思いつつ、報告はするだけしたほうが良い気もしたので、VMUG の方々に方法を相談したところ、Feature Request がよいのではとの案をいただきました。というわけで送信済みです。