自然の赴くままに・そのときの 気分次第で・なんとなく

興味を持ったことを、なんとなく気の向くまま書いています。

vSphere ESXi customize image のつくりかた(vSphere 7 が来る前の準備)

カスタムイメージが必要な理由は

来月には出てくると言われている vSphere 7 ですが、家ラボ検証環境を作る際には実際のサーバーを購入し環境を作るのはお金の面で厳しいものがありますし、電気代や熱、音そして設置スペースも気になるところです。でも、もっと気になるのは家族の目。特に奥さんからのプレッシャーが半端ないかと思います。

私の場合も以前は富士通のサーバーを12台、FC-SAN ストレージまで家に用意し、ルーターCiscoYAMAHA で家ラボを組んでいましたが、それはそれは冬でも窓を開けておかなければならない程暑くなる、そして夏は冷房を強冷にしていてもなかなか涼しくならないという6畳の部屋に環境を作っていました。そのサーバー環境を6年位維持していました(その間にもサーバーは AMD Opteron 150 から Intel Xeon E3-1265L に全て入替えたり足掻いたのですが)が、流石に暑いし電気食うしで起動しない状態が長く続くようになって「これはちょっとどうにかしなきゃ」ということで、再度のサーバーの全入れ換えをしました。その移行先がその頃登場し始めた Intel の NUC でした。

最初に 4台のサーバーを処分するとともに Haswell の第二世代 NUC D54250WYB 16GB メモリーを 3台購入、次に第5世代 Broadwell の NUC 5i5RYH 32GBメモリーを3台購入して家ラボからサーバーを4台外し、次に第6世代 Skylake の NUC 6i5SYH 32GBを3台購入し残りの4台を家ラボから外し、そして最後に最初の 16GB メモリーの D54250WYB を第7世代 Kaby Lake の NUC 7i5BNH 32GB 3台で置換えて昨年まで使っていました。

でも、これらのサーバーや NUC は全て VMware で認定が取れていない機種なのでオリジナルのイメージにはこれらのサーバーや NUC に使われているデバイスのドライバーが含まれていません。ということは、ESXi のイメージからインストールしようとしても構成によってはインストールが出来ないということになります。これ結構重要なことで、特にネットワークインターフェースやディスクインターフェースのドライバが無いと、インストーラーで「デバイス無いよ」とはじかれて先に進むことすらできません。そうなると、たとえドライバを入手できても vib ファイルを後から適用することすらできないのでお手上げになってしまいます。

そこで必要なドライバを作って組み込む(ドライバのビルドの話はまたいずれの機会に)わけなのですが、ネットの世界にはドライバを作って公開していたりする人がいるので、それをダウンロードしてオリジナルイメージに組み込んで独自イメージを作ってしまいそれを使ってインストールするということが必要になります。

カスタムイメージの作り方

そうは言ってもそう簡単にカスタムイメージが作れるの?と思ってしまうところですが、実は意外と簡単にカスタムイメージは作ることが出来てしまいます。

f:id:imaisato:20200411001031p:plain

手順

やることはこれだけ。そしてあまり悩ますに作ることが出来ます。それではそれぞれのダウンロード先などを交えながら説明します。

バイスに必要なドライバの vib を入手

以下のサイトにいろいろなドライバが用意されています。

vibsdepot.v-front.de

このサイトの画面右上にある検索窓でデバイスの検索をすると、該当するデバイスのページが見つかりますので、そこから vib をダウンロードします。画面の一番下に「Direct Download links」がありますので、そこからダウンロードしてください。私の場合は NIC を合計 3つにしたかったので、USB NICバイスを追加しています。このようなデバイスはドライバが用意されていないのですが、こちらも有志が用意してくれていたりするのでデバイスを買う前にまずはドライバがあるかどうかを探してからデバイスを購入するようにします。

flings.vmware.com

私の場合は以下のデバイスを追加しています。

www.startech.com

以下のサイトにもドライバがあるので、こちらをつかうのもよいかもしれません。業務用途じゃないのでこういう情報が公開されているのはとても助かります。

www.devtty.uk

ESXi-Customizer-PS を入手

カスタムイメージを作る場合はコマンドでちまちまやる方法もあるのですが、それだと少し間が空くと手順やらを忘れてしまうものです。なので、下記サイトに用意されている ESXi-Customizer-PS という便利ツールを使います。

www.v-front.de

本日時点の最新は ESXi-Customizer-PS-v2.6.0.ps1 ですが、常に新しくなっていっているので必要な時にダウンロードして使うようにします。

www.v-front.de

PowerCLIのインストール

ESXi-Customizer-PS を使うには WindowsPowerShell が必要です。そして、カスタマイズイメージを作るためには PowerCLI が必要。この準備をします。

まず管理者権限で PowerShell を開きます。そして以下のコマンドを実行し、PowerCLI をインストールします。
Install-Module VMware.PowerCLI -Scope CurrentUser

f:id:imaisato:20200411004430p:plain

PowerCLI のインストール

この時、PowerShellスクリプトの実行許可が無いと警告のメッセージが出ますので、

Set-ExecutionPolicy Unrestricted
のコマンドを実行し、PowerShell インストールのスクリプトが実行できるようにしておきます。

これでカスタマイズイメージの作成準備は終了です。

Build用のフォルダの作成/vib 用のフォルダを作成

この辺りは用意しなくても出来るのですが、やはり後で再度使うときなどのために整理しておくと良いと思います。

私の場合は vSphere 用のフォルダを作り、その中に vib のフォルダを作っています。

f:id:imaisato:20200411010407p:plain

フォルダはわかりやすくね

この後のコマンドの記述は、このフォルダ階層を例にしていきます。

ダウンロードしたドライバの vib を vib フォルダに配置

上記フォルダ配置の vibXX (私は XX は vSphere のバージョン/アップデート版数にしています。)にこれから作成するカスタマイズイメージに必要な vib を配置します。

カスタマイズイメージ作成準備はこれだけ。

ESXi-Customizer-PSを実行しカスタマイズイメージを作成

最後に PowerShell の画面から ESXi-Customizer-PS を実行し、カスタマイズイメージを作ります。これもとても簡単でコマンドを実行するだけです。

まず、上記図の Build フォルダに移動します。

その次に以下のコマンドを実行します。以下は vib67 に置いてある vib ファイルをオリジナルの最新イメージをネットから取ってきて組み込み、最後に iso 出力するというコマンドです。
.\ESXi-Customizer-PS-v2.6.0.ps1 -vft -v67 -pkgdir vib67

コマンドのオプションは

.\ESXi-Customizer-PS-v2.6.0.ps1 -help

で見ることが出来ます。良く使うのは以下の通りです。

  • -vft            ・・・・  V-Front のオンラインデポに接続
  • -v67 / -65 / -v60 / -v55 / -v51 ・・・・   作成する vSphere のバージョン
  • -pkgdir           ・・・・  vib のおいてあるフォルダ
  • -nsc            ・・・・  署名の無いドライバを使う
  • -ozip            ・・・・  zip 出力
  • -izip            ・・・・  zip ファイルを iso イメージへ

これだけ知っていればほぼ「作れない」ということはありません。

なお、古い vSphere のイメージを作るときに [WinError 10054] のエラーが出ることがあります。これはいろいろなブログに『TLS1.2有効化すればOK』とかあるのですが、手っ取り早いのは -ozip のオプションを付けて zip ファイルで出力し、再度コマンドを -izip を付けて実行して iso を作るという方法を取れば回避できます。私はいつもその方法で iso イメージを作っています。

.\ESXi-Customizer-PS-v2.6.0.ps1 -vft -v67 -pkgdir vib67 -ozip

.\ESXi-Customizer-PS-v2.6.0.ps1 -izip ESXi-6.7.0-20200403001-standard-customized.zip

こんな感じです。またダウンロードしたドライバに署名が無い場合エラーが出ることがあるのですが、こちらは -nsc オプションを付けることで回避できます。

.\ESXi-Customizer-PS-v2.6.0.ps1 -vft -v67 -pkgdir vib67 -nsc

こんな感じです。

iso イメージを USB 媒体に書き込む

出来上がった iso イメージを CD に焼いて使うこともできますが、ここはスマートに USB メモリーに書き出して USB からインストールしたいですよね。それには Rufus というツールを使います。

 

これを使えば簡単に USB ブートの ESXi カスタムイメージが出来上がります。あとはハードウエアに ESXi をインストールするだけで出来上がりです。

意外と簡単にカスタマイズイメージ作れるでしょ?。

(ドライバのビルドは大変ですが)