vHoge

VMwareのアレコレ備忘録。CLIでがんばるネタ多め。

PowerCLI 12 で Linux 上でのカスタムイメージビルドはできるようになったか?

vSphere 7.0 の GA に併せて、PowerCLI や OVFTool 等の周辺ツール系の Update もリリースされました。
その中で、PowerCLI 12 のリリースノートより。

vdc-download.vmware.com

VMware PowerCLI Components
In VMware PowerCLI 12.0.0, the following modules have been updated:
[略]
VMware.ImageBuilder: Provides cmdlets for managing depots, image profiles, and VIBs.

お、VMware.ImageBuilder の Update 来てる?
これはひょっとして PowerShell Core でも動くようになってない?ということで Try。

VMware.ImageBuilder の現状

マルチプラットフォーム対応した PowerShell Core に追従して、PowerCLI も v10 から PowerShell Core に対応し、MacLinux 上でも動作するようになりました。

…が
全てのモジュールが対応したわけではなく、一部モジュールは PowerShell Core 非対応のままで、Win 環境のみでの動作となっています。

Version    Name                                Repository           Description
-------    ----                                ----------           -----------
6.7.0.1... VMware.DeployAutomation             PSGallery            This Windows PowerShell module contains PowerCLI...
6.7.0.1... VMware.ImageBuilder                 PSGallery            This Windows PowerShell module contains PowerCLI...
11.2.0.... VMware.PowerCLI                     PSGallery            This Windows PowerShell module contains VMware.P...
6.7.0.1... VMware.Vim                          PSGallery            This Windows PowerShell module contains PowerCLI...
11.2.0.... VMware.VimAutomation.Cis.Core       PSGallery            This Windows PowerShell module contains PowerCLI...
11.0.0.... VMware.VimAutomation.Cloud          PSGallery            This Windows PowerShell module contains PowerCLI...
11.2.0.... VMware.VimAutomation.Common         PSGallery            This Windows PowerShell module contains function...
11.2.0.... VMware.VimAutomation.Core           PSGallery            This Windows PowerShell module contains Windows ...
【略】

(上は PowerCLI 11 ですが)
最新のPowerCLI インストール後、Get-InstalledModule叩くと出てくる VMware モジュールで、Version が 10 以上となっているものは PowerShell Core 対応で、6.x 系のまま残っている物は PowerShell Core 非対応で Win環境のみの動作と思われる。

PowerCLI 12 を試す

というわけで、適当な Ubuntu 18.04 LTS に最新 Version の PowerShell / PowerCLI をインストールしてみる。

$ wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
$ sudo apt-get update
$ sudo apt-get install -y powershell
$ pwsh
PS /home/mirie > Install-Module VMware.PowerCLI

これでインストール完了。Version を見てみる。

PS /home/mirie > Get-InstalledModule -Name VMware.*

Version              Name                                Repository           Description
【一部略】
7.0.0.15902843       VMware.ImageBuilder                 PSGallery            This Windows PowerShell module contains PowerCLI I…
12.0.0.15939652      VMware.VimAutomation.Common         PSGallery            This Windows PowerShell module contains functional…
12.0.0.15939657      VMware.VimAutomation.Cis.Core       PSGallery            This Windows PowerShell module contains PowerCLI C…
7.0.0.15902843       VMware.DeployAutomation             PSGallery            This Windows PowerShell module contains PowerCLI A…
7.12.0.15718406      VMware.VimAutomation.HorizonView    PSGallery            This Windows PowerShell module contains Connect/Di…
12.0.0.15940185      VMware.VimAutomation.Vds            PSGallery            This Windows PowerShell module contains PowerCLI V…
12.0.0.15947288      VMware.VimAutomation.WorkloadManag… PSGallery            PowerShell commands for automation of workloads re…
12.0.0.15947287      VMware.VimAutomation.Vmc            PSGallery            This Windows PowerShell module contains PowerCLI V…
12.0.0.15939672      VMware.VimAutomation.Security       PSGallery            This Windows PowerShell module contains PowerCLI s…
12.0.0.15940184      VMware.VimAutomation.vROps          PSGallery            This Windows PowerShell module contains PowerCLI v…
12.0.0.15939655      VMware.VimAutomation.Core           PSGallery            This Windows PowerShell module contains Windows Po…
12.0.0.15947286      VMware.PowerCLI                     PSGallery            This Windows PowerShell module contains VMware.Pow…
12.0.0.15939671      VMware.VimAutomation.Nsxt           PSGallery            This Windows PowerShell module contains PowerCLI N…

7.0.0.15902843 VMware.ImageBuilder
7.0.0…不穏…一応イメージビルドを試してみる。

PS /home/mirie > > Add-EsxSoftwareDepot ./ESXi670-NE1000-32543355-offline_bundle-15486963.zip
Add-EsxSoftwareDepot: The 'Add-EsxSoftwareDepot' command was found in the module 'VMware.ImageBuilder', but the module could not be loaded. For more information, run 'Import-Module VMware.ImageBuilder'.

VMware.ImageBuilder が Load できていない…
手動 Import を試す。

PS /home/mirie> Import-Module VMware.ImageBuilder
Exception: The VMware.ImageBuilder module is not currently supported on the Core edition of PowerShell.

オワタ…orz

結論

PowerCLI 12 でも VMware.ImageBuilder は PowerShell Core未対応、
Windows 以外動作しない
ということで…

考えてみればリリースノートにもそれっぽいことは書いてないわけで。
(と未対応で言っても Update の記述あったらちょっと期待しますよねぇ…)

サーバは Linux、クライアントは Mac みたいな環境もかなり増えてきているので、VMware.ImageBuilder も PowerShell Core 対応してくれないとシンドい所が多いのでは…

vSphere 6.0 は塩漬けしない方がよい 3 つの理由

vSphere 7 が華々しく発表される傍ら、vSphere 6.0 が 2020/3/12 (PST?)終日を以って End of General Support (EOGS)を迎えます。
blogs.vmware.com
ここからは Technical Guidance フェーズとして、パッチや機能追加こそ出ませんが、問い合わせ自体はナレッジベースで対応するサポートフェーズとなります。

正直なところ、予算も無いし、5年も枯れたバージョンであればさほどクリティカルな障害は出ないだろうということで、ハードリプレースに向けて塩漬けさせるという対応を取るところも多いだろうとは思いますし、そういった事情も理解します。
特に vSphere となると機能追加より安定性重視で塩漬けするケースも多いと思います。

ただ、今回は今までの 5.x 時代とは少し異なる事情があり、塩漬けさせておく方がリスクが高いのではという理由がありますので、その辺の話をば…
※ あくまで個人の見解です。

vSphere 7 の話もしたいところではありますが、まだ詳細をキャッチアップできていなかったりするので、その話を知りたい人は VMware Blog 辺りを追っかけてみると今ならいっぱい出てくるかとw

昨今の CPU 脆弱性事情

その昔は脆弱性と言えば OS もしくはソフトウェアレイヤー での話が多く、ある程度稼働実績が長ければ脆弱性も出尽くして安定しているという傾向にありました(勿論 0 ではありませんが…)。また、ESXi の管理インタフェースを DMZ のようなインターネットにさらすケースは極めて稀なので、多少の問題は無影響で潰せるケースも多かったと思います。

ところが最近、Meltdown や Spectre をはじめとした CPU (の特に投機実行まわり)での脆弱性が継続的にポロポロと検出されており、その対応や緩和策として OS レイヤー、つまり ESXi でパッチがリリースされるというケースが多いです。
ネットワーク的に DMZ に置かれていなくても同じ ESXi 上でマルチテナント、もしくは、シングルテナント(同一企業内)であっても VM の管理者が異なるケースであれば、脆弱性が突かれ、(実用的かはさておき)他の VM 情報を盗み見れる可能性が生じます。

ハードウェアの脆弱性とはいえ、OS 側でのパッチがセットとなるケースが多いので、パッチが出てこないとなると特にマルチテナント環境をはじめとして、仮想化集約がかかった環境であればそのリスクは大きくなると思います。

アップグレードパス

原則 vSphere のアップグレードは 2バージョン以内となっているようで、あまり細かい情報はキャッチアップしていませんが、vSphere 6.0 から発表された vSphere 7 への直接アップグレードパスはありません。
なので、vSphere 6.5 or 6.7 経由しての 2段階アップグレードとなります。
で、vSphere 6.5 と 6.7 はリリースが1年半差があるにも関わらず、共に EOGS は 2021/11/15 と (vSphere 6.0 EOGS から)1年半程度の違いしかありません。
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/support/product-lifecycle-matrix.pdf

まぁ、どこにアップグレード検証や作業のシワ寄せをするかの話でしか無いですが、6.0 の EOL 付近に慌てて 6.5/6.7 にあげても焼け石に水なので、それならパッチとかアップデートの恩恵を受けられるタイミングで上げておいた方が…というお話。

※ この件については正直、 6.5 と 6.7 で GA が1年半近く違うのに EOGS や EOL が同じタイミングなのはどうなのという気持ちがありますが…

Flash の EOL

個人的にはこの話が一番大きいと思っていますが…
vSphere 6.0 といえば vSphere Web Client がメインで Flash が必須だったりしますが、2020年末に Flash 自体が EOL を迎え、主要ブラウザでの利用ができなくなります。

Flash 環境を維持する = ブラウザアップデートを止めることになり、それはそれで塩漬け以上のセキュリティリスクが発生したり、環境的な制約が出てきます。

そのため、6.0 の EOL まで残したとしても途中で主要管理環境を失うこととなり、運用上で大きな問題となることが懸念されます。

C# クライアント使うとか Flings から HTML5 クライアント入れるとかの代替策もありますが、公式でサポートされているものではなく、機能制限がついてしまう(特にサードパーティ周りのプラグイン)ので、特に塩漬けを考えるようなエンタープライズ系での利用だとネックになりそう。

その他

それ以外にも NSX-T や EPYC、Optane PMEM、は vSphere 6.0 での対応来ず、vSphere 6.5 (Update x) 以降となっており、少なくともvCenterは上げておかないと追加できない状態。

従来の 5.x までとは事情が異なっており、アップグレードに対して塩漬けの方がリスクが高そうな状況なので、保守的に倒すところでも今回は思い切った方が良いのではなかろうか。

vExpert Directory にアイコンを登録したい

現在の vExpert が載っている vExpert Directory

ざっと見るとお気づきになるかと思いますが、その人のアイコンが表示されている人が結構いらっしゃいますが、 アレってどうやっているんだろう…
アカウント設定ページを見てもそれらしい項目は見つからない…

未登録だと ↓ な感じ。
アイコン未登録の場合

取得元を追ってみる。

というわけで、表示されている人のページの HTML ソースを見てみる。

<div class="content-container">
  <main class="content-area">

    <section class="community-top-section">
      <h1 id="community">
        <img src="https://www.gravatar.com/avatar/【IDっぽやつ】?s=64&d=mm" alt="" title="Gravatar.com" border="0" />
        hogehoge      </h1>


      <div class="row">
        <div class="col-xs-10">
          <h2>vExpert Information</h2>
        </div>
        <div class="col-xs-2">
                  </div>
      </div>

gravatar.com から取得している?

gravatar.com とは

ja.gravatar.com

グローバルに認識されるアバターGravatar は、ブログやコメントを投稿する際に名前の側に表示される画像です。アバター画像があるとブログやフォーラム上で誰が発言しているのか分かりやすくなります。他にも色々なサイトで利用できます。

ここに登録されたアバター画像を vExpert Directory 側で表示しているっぽい。

どうやって連携している?

自分もアカウント登録して画像上げてみるも vExpert Directory 側には表示されず… アカウント設定にも gravatar 情報入れるところ無いっぽいんだよなぁ…と困惑。

すると @tcpninja さんからありがたいお告げが!

お、なるほど!!

gravatar.com を設定し直す

アカウント作成したといっても Google アカウントの連携で作っており、vExpert Application Portal の登録アドレスとは異なっている状態。
gravatar に vExpert Application Portal の登録アドレスを追加、 primary email に昇格し、アバター画像を登録する。 gravatar (上側が vExpert Application Portal 登録アドレスで、下は Google(gmail))

これで vExpert Directory を開くと… vExpert Directory
表示された!

設定とかなく、登録メアドでぶつけているだけなんですね。

これって裏技なの?

vExpert Application Portal 見ても gravatar 連動とか表示方法の記載は見つからず…
Google で探しても引っかからず…何でみんな知ってるの…

と思ったのですが、未登録時のこのアイコン、gravatar のアイコンなんですね。
ここからみんな察している…?いや、分からんわ…

同じく迷える人達、後進のため、残しておく。。。

※ 3/4 追記
gravatar の話はアナウンスメールに流れてるでというご指摘をいただきまして、
メール掘り起こしてみると確かに記載ありました…
gravatar の文字列は何か見た気がしていたのですが、ここにあったとは。
ということで、メールはちゃんと読みましょう(汗)

govc で screenshot を取る

備忘録的小ネタ。書いてみたら大きくなりました。

先日某 vSphere のストレージでトラブった際 VM コンソールに Readonly 落ちが出ていないかを確認するのに govc をブン回して screenshot を取得したという苦労話を聞いた。

え、govc 単独で VM コンソールの screenshot を取れるの?ということで試してみる。

Usage

govmomi/USAGE.md at master · vmware/govmomi · GitHub
screenshot で探してみると確かにありますねぇ…

Usage: govc vm.console [OPTIONS] VM

Generate console URL or screen capture for VM.

One of VMRC, VMware Player, VMware Fusion or VMware Workstation must be installed to
open VMRC console URLs.

Examples:
  govc vm.console my-vm
  govc vm.console -capture screen.png my-vm  # screen capture
  govc vm.console -capture - my-vm | display # screen capture to stdout
  open $(govc vm.console my-vm)              # MacOSX VMRC
  open $(govc vm.console -h5 my-vm)          # MacOSX H5
  xdg-open $(govc vm.console my-vm)          # Linux VMRC
  xdg-open $(govc vm.console -h5 my-vm)      # Linux H5

Options:
  -capture=              Capture console screen shot to file
  -h5=false              Generate HTML5 UI console link
  -vm=                   Virtual machine [GOVC_VM]

govc とは

あれ govc の話って前にしなかったっけ?と思ったらあれは VMUG の中でのネタか…
なので、 public には何も出てないのでとりあえず資料から抜粋だけ。
詳細は割愛。ちょっと調べればいっぱい出てくる…はず。

https://github.com/vmware/govmomi/tree/master/govc
・Go 言語 (govmomi) で書かれた OSS の CLI ツール
・Windows / Linux / MacOS / FreeBSD 対応
・PowerCLI 相当の vCenter/ESXi 操作が可能
・vSAN や NSX などの他コンポーネントは未対応
・数MBのバイナリファイル1つのみなので可搬性が高い

取得してみる

試しに vCSA の VM コンソールを取得してみる。
vSphere Client 上でのコンソール表示は ↓ の感じ。
VM例 govc を叩いて screenshot をファイルに出力する(実行は WSL 上から)

# screenshot 取得、特にコンソール上に結果出力などはなし。
$ govc vm.console -capture screen.png Embedded-vCenter-Server-Appliance

# file で見てみる。
$ file screen.png
screen.png: PNG image data, 800 x 600, 8-bit/color RGB, non-interlaced

実際に取得したスクショのファイルは ↓
コンソール おぉぉ、すごい。ちゃんと取れてる。
ちなみに VMRC とかは入っていません。

PowerCLI でもできるのかな?

デフォルトの cmdlet だと入っていないが、自前でスクリプト書けばできるっぽい。
例えば ↓のページに実装例が載っています。 www.vcloudnine.de

MoRef

というか、↑ のページの PowerShell 見ていて知ったのですが。
下記の URL で VM のコンソール表示だけできるんですね…(要 vCenter UserID/Password)

https://【vCSA IP or ドメイン】/screen?id=【VM の moid】

コンソールページ vSphere Client から開くものとは異なっており、本当にコンソール表示だけで、ここでマウスとかキーボードとか操作しても VM 側には渡されていない…
というか、コンソールが画像として表示されています。
画像なのでコンソール出力に変化があっても再描画されない。 MoRef
ほーコンソールの画像生成はそもそも vCenter 側で行っていて、 PowerCLI も govc もこの生成された画像をダウンロードしているだけなのね。



余談

最初は govc の話だけだったはずが、ついでで PowerCLI 調べてみたらかなり話が広がってしまった…

vExpert 2020 を受賞しました

日本時間で今朝、vExpert 2020 の発表があり、昨年に続き受賞いたしました!
受賞された皆々様おめでとうございます!

vExpert☆☆
vExpert☆☆
vExpert 2020
vExpert 2020
今日発表らしいというのは認識していたので、少し早めに起きてメールチェックするも特に何も来ておらず… Twitter も静かだし、発表遅れてるのかな?早いし2度寝するか…と布団に戻って10分後にメールが来ていたというw
なんとも間が悪い。

2回目の申請

Activity としてはそれなりにあり、新規に比べれば更新の方が通りやすいという噂だったりで、特に心配することもないのですが、個人的には受賞できるかは半信半疑でした。
昨年は Customer Path として VMware 社のアカウント SE の方にもコメントをいただき(その節はありがとうございました!)受賞という流れでしたが、今年は Evangelist Path で申請をしています。 所属会社としては Customer であり Partner でもありというポジションらしいのですが、自分の担務的には直接関係なく、担当者とのパスもないということで Evangelist Path で上げています。

とにかく昨年と条件が異なるということで肌感としていける感がピンと来ず、どうなるものか…という思いでしたが、無事何とか受賞できました。

今年の vExpert 事情

※ 個人の感想です
vExpert Directory をざーっと眺めていたのですが、何か FJCT さんで初受賞された方が多いなーという印象。

会社として何かあったんですかね?w

というか、そもそも今まで1人も居なかったというのがおかしな話で。国内屈指の規模で vSphere 基盤のクラウドを提供していて、meetup とかでもかなり深い話とかされていたので、今後も深いネタ面白いネタがでてきてくれそうです。

別に FJCT さんに限らず、どこの会社であっても自分のところはこうやってます話はあり、他所からすると結構おもしろかったり参考になったりするので、その辺の話どんどんとでてきて多彩な会社ラインナップとならないかなぁと期待しております。