Virtual Infrastructure JSON API(VI/JSON API)の触り方

はじめに

前回のエントリ で、vSphere に古くから実装されている API である vSphere Web Services API(SOAP API)の触り方を紹介しました。その中で、Virtual Infrastructure JSON API にひとことだけ触れています。

SOAP API を(広義の)REST API のように触れる Virtual Infrastructure JSON API も vCenter Server 8.0 U1 以降が必要で、まだまだ一般的ではありません。

vSphere Web Services API(SOAP API)の触り方 | kurokobo.com

Virtual Infrastructure JSON API(VI/JSON API)は、vCenter Server 8.0 U1 で追加された新しい API で、ひとことで雑に表現するなら、従来の SOAP API の REST API 版 です。

本エントリでは、まだ日本語ではほとんど情報がないこの新しい API について、実例とともに簡単に紹介します。

なお、vSphere の REST API といえば vSphere Automation API が一般的ですが、VI/JSON API はこれとはまったく別物 です。

続きを読む

vSphere Web Services API(SOAP API)の触り方

はじめに

vSphere 環境をコマンドライン環境や何らかのスクリプトから操作するとき、典型的には PowerCLI や govmomi、pyVmomi、VMware vSphere Automation SDK などのツールがよく利用されますが、こうしたツールを使わずに API を直接触れる と、vSphere に実装された新機能をリリースと同時に使い始められ てたいへん便利です。実際、vSphere vMotion Notifications がリリースされたときも、ツールが更新されるまでは、API を直接触る 以外にそれを試す手段がありませんでした。

vSphere の API には、古くからある SOAP API(vSphere Web Services API)と新しい REST API(vSphere Automation API)の大きく二つがあります。操作が簡単なのは間違いなく REST API ですが、SOAP API でしか行えない操作もたくさんあり、また、SOAP API を(広義の)REST API のように触れる Virtual Infrastructure JSON API も vCenter Server 8.0 U1 以降が必要で、まだまだ一般的ではありません。

したがって現状では、昔ながらの SOAP API こそ が、極論、大抵のことはどうにかできる API であると言えます。そこでこのエントリでは、SOAP APIvSphere Web Services APIを直接触る方法 を実例と共に紹介します。

なお、コマンド例は curl と PowerShell で紹介 していますが、結局は HTTP で XML をやりとりするだけなので、お作法さえわかれば他の HTTP クライアントでももちろん利用できます。また、SOAP API は Managed Object BrowserMOB)でも操作できますが、Web ブラウザでの操作であり自動化には向かないため、今回は取り上げません。

続きを読む

vSphere vMotion Notifications を試す

はじめに

vSphere 8 で vSphere vMotion Notifications と呼ばれる機能が追加されました。

ざっくりとは、 vMotion に耐えられないアプリケーションが動作している VM 向け の機能で、ゲスト OS に vMotion の事前準備と事後処理を行う機会を与える ものです。ESXi は、vMotion がトリガされると対象のゲスト OS に通知し、その通知に対するゲスト OS からの応答(Acknowledgement)が返ってくるまで実際の移行処理を遅延させます。ゲスト OS 目線では、通知を受けたら必要な事前準備を行い、その後に応答を返すことで、vMotion に安全に備えられることになります。その後の移行処理の完了も別途通知を受け取れるため、事後処理も行えます。

この仕組みにより、厳しい動作要件があって vMotion に耐えられなかったアプリケーションも、vMotion を乗り越えられるようになる…… ということのようです。例えば、複数ノードでクラスタ化されているアプリケーションで、vMotion の前後でクラスタからの離脱と再参加を自動で行うようなイメージですね。

自宅に何かそういう厳しいアプリケーションがあるわけではないのですが、おもしろそうな機能なので実際に触ってみました。本エントリでは実際の設定や動作を紹介します。

続きを読む

vSphere 8: vCenter Server と ESXi を 7.0 から 8.0 にアップグレードする

はじめに

vSphere 8 が公開された ので、おうちラボをアップグレードしました。本エントリはその記録です。

なお、vSphere 8 から製品のリリースモデルに変更があり、従来のように いきなり GA(General Availability)ではなく、今後は IA(Initial Availability)と GA の 2 段階方式 になるようです。ということで、今回は厳密には IA リリースへのアップグレード です。

詳細は次の公式ブログのエントリで解説されていますが、ざっくりいえば、従来の GA 相当のモノをまず IA の扱いでリリース し、1 ~ 2 ヶ月ほど経って IA の採用が充分に広まったら GA 扱いに変更する ようです。GA 前の公開という意味では IA がいわゆるパブリックベータのような扱いとも思えてしまいますが、そうではなく、IA でも品質は従来の GA と何ら変わらないということのようでした。

Our intent going forward is that all major and update vSphere releases will be delivered first with an IA designation. An IA release is a production-quality release that meets all GA quality gates and is fully partner certified. IA releases will be available during the IA phase to all customers for production deployments.

We will follow up once we determine each release has achieved sufficiently wide adoption and announce the transition of the release to a GA designation. We expect this to typically happen after 4-6 weeks from IA.

New Release Model for vSphere 8 – VMware vSphere Blog

率先して新しいモノを使いたいヒト向けが IA で、ある程度ワールドワイドで実績ができてから採用したいヒト向けが GA って感じでしょうか。たぶん。

とはいえ、IA から GA まで最大で 2 ヶ月ちかく空くことになりそうなので、IA のビルドが本当に完全にそのまま GA になるのか、あるいはなんだかんだで GA にあわせてパッチリリースなど新しいビルドが出てくるのか、断定はしづらそうです。いつものビルド番号の一覧の KB(vCenter ServerESXi)では 8.0 IA と書かれているので、この行が GA に書き換わるのか、あるいは行が増えるのか、要注視ということで。

続きを読む

New-IsoImage: PowerCLI でのカスタム ISO ファイルの新しい作り方

はじめに

vSphere 7 から、vSphere 環境のライフサイクル管理を担う vLCM が登場し、ESXi のパッケージ構成が ベースイメージアドオンコンポーネント を追加する考え方に変わりました。

PowerCLI でも、2020 年 4 月にリリースされた 12.0 から、この考え方に基づいてカスタム ISO ファイルの作成が行えるよう、New-IsoImage など Image Builder 関連の新しいコマンドレットが追加されています。カーネルオプションも含められる ので、慣れるととても便利です。

使い方は vSphere 7.0 のドキュメントVCF のドキュメント に充分書いてありますし、リファレンスもあります が、本エントリでは、ドキュメントに書かれていないところを補足しつつ、改めて紹介します。

なお、実際に使う場合は、バグが修正されている PowerCLI 12.5 以降VMware.ImageBuilder 7.0.3 以降)を推奨します。また、現状、PowerShell Core(OSS 版の PowerShell、現 PowerShell 7)では動作しない ため、Windows にバンドルされている Windows PowerShell を使う必要 があります。

続きを読む

新しいドライバで NUC 8 のオンボード NIC を ESXi 7.0U1 で使えるようにする

はじめに

NUC 8 のオンボード NIC は、ESXi 7.0 U1 から、組み込みのドライバではうまく認識されなくなっています。このため、NUC 8 の ESXi を 7.0U1 以降にアップグレードするには、これまでは対象のドライバ ne1000 だけ旧バージョン(7.0b 世代)にダウングレードする必要がありました。この目的で、以前のエントリ では、特定のドライバだけダウングレードしたカスタムイメージプロファイルの作成と、それを利用したアップグレードを紹介しています。

が、先日、VMware Flings でこの問題を解決できる新しいドライバがリリースされました。

このドライバは、ne1000 ではなく別の新しい e1000-community(と igc-community)として認識されるため、組み込みの ne1000 ドライバと一切競合せず、共存できる 点がポイントです。NIC は ne1000 でなく e1000-community を使って動作するようになるため、ne1000 のバージョンは気にする必要がなくなり、ダウングレードが不要 になります。

続きを読む

OpenShift 4.6 のベアメタル IPI インストールを試す

はじめに

OpenShift 4 では、そのクラスタの構成方法に IPI(Installer-Provisioned Infrastructure)と UPI(User-Provisioned Infrastructure) の二種類があります。

これまで、IPI をサポートするプラットフォームは AWS や Azure、GCP、RHV、vSphere などのパブリッククラウドやオンプレミスの仮想化基盤に限定されていましたが、どうやら先月末にリリースされた OpenShift 4.6 で、ベアメタル環境への IPI インストールが公式にサポートされたようです。

In 4.6, the full stack automation installation of OpenShift on bare metal is generally available.

Red Hat OpenShift 4.6 Is Now Available

これまでも、GitHub 上では ベアメタル IPI の情報は公開 されており、以前も VirtualBMC for vSphere のユースケースとしても実際に 4.5 で動作を確認済み でした。

とはいえ、せっかく公式手順に仲間入りしたので、このエントリでは、OpenShift 4.6 で公式にサポートされたベアメタル IPI インストールの方法を、改めて紹介します。ただし、BMC を積んだ物理サーバが潤沢にあるわけではないので、物理サーバは VirtualBMC for vSphere を使った vSphere 環境の仮想マシンで代替します。

なお、今回紹介する手順は OKD でなく OpenShift のものです。インストールすると Red Hat OpenShift Cluster Manager に登録され、60 日間の評価期間 が始まります。

続きを読む

Raspberry Pi 4 Model B で ESXi 7.0 を動かす

数年前の VMworld で参考展示がされていた ESXi on ARM ですが、Flings からついに ESXi Arm Edition としてリリースされました。

現段階ではバージョンは 7.0.0(ビルド 16966451)で、機能上は 7.0 の GA 版準拠のようです。

Supported ESXi-Arm Hardware として Raspberry Pi 4 Model B も挙げられていて、家に 4 GB の子が遊んでいた ので、入れてみました。

期待以上に素直に動きましたが、vCLS のエージェント VM が ARM だと動かないため、vCenter Server のバージョンが 7.0 update 1 の場合はクラスタに入れられなくなる(入れられはするがエラーが出続ける)点には注意が必要です。

続きを読む

NUC 8 の ESXi を 7.0b から 7.0 update 1 にアップグレードする

自宅の第 8 世代の NUC(NUC8i5BEK)で動いている ESXi 7.0b を、出たばかりの 7.0 update 1 にアップグレードしようとしたら、ドライバまわりで死んだので、最終的にどうにかするまでを含めて作業内容を書いておきます。

まとめると、

  • NUC 8 では、ESXi 7.0 U1 から、組み込みのドライバではオンボード NIC を認識できなくなった
  • 7.0 U1 のベースイメージを使いはするが、NIC のドライバ ne1000 だけは 7.0b のドライバのままにする必要がある

な感じです。

今回は、vLCM のイメージ管理を使っていた環境だったので、

  • イメージ管理からベースライン管理に戻して
  • Image Builder を使ってカスタムイメージプロファイルを作って
  • 作ったイメージプロファイルをベースライン化して適用した

ことでアップグレードを行いました。

なお、vCenter Server は ESXi の前に 7.0 update 1 にしていますが、VAMI からすんなりできて特別なこともなかったので、特に触れていません。

続きを読む

vSphere 上の仮想マシンを IPMI で操作する: VirtualBMC for vSphere (vbmc4vsphere)

ざっくり紹介

いろいろあって作りました。

これを使うと、vSphere 環境上の仮想マシンを、IPMI (ipmitool など)で制御できます。

物理サーバとまったく同じプロトコルが(もちろん全部ではないですが)仮想マシンに対して使えるようになるため、単に ipmitool による手動操作だけでなく、バックエンドで IPMI を必要とする、または IPMI があれば動かせる物理サーバ向け機能も仮想環境で動作させられる 可能性がある点が大きなメリットです。

具体的には、

  • ipmitool での手動操作(電源制御、起動デバイスの変更)
  • vCenter Server からの ESXi のパワーオン
  • vSphere DPM(Distributed Power Management)による自動電源制御
  • oVirt など他の仮想環境管理ツールの自動電源制御
  • OpenShift の Baremetal IPI など、物理サーバに対する自動プロビジョニング機構

が、vSphere の仮想環境内で実際に動作させられる可能性があります。

もちろん、物理環境を完全にエミュレートできるわけではないため、完全な代替とは言えず種々の注意は要しますが、前述のものはいずれも動作確認済みです。

本エントリでは、仕組みと簡単な使い方を紹介します。

続きを読む