電気羊の執務室

魔法を作る仕事をしています。

VMWare ESXiホストへ、Windows7マシンをPackerで作る

今回は、VMWare ESXiのホストマシンに、 Packerを使用してWindows7のゲストマシンを導入する方法を紹介します。

今回の構成

構成図

Packerを使う理由

ゲストマシンの立ち上げは、 ESXiから直接やるよりも、 ツール経由でやるほうが後々便利です。

Packerは、『Vagrantで扱えるVMのひな形(boxファイル)を作るツール』です。 最終的には、Vagrantなどでサーバーインスタンスを次々と 作る予定ですが、そのためには最初のひな形をどうにか作る必要があります。

Linuxなどは、boxファイルが多数公開されていて、 ダウンロードして使う事ができますが、Windowsはライセンスの関係で、 公開されているものがありません。自分で作るしかないわけです。

VirtualBox使いには、vagrant packageというコマンドで、 動いているインスタンスからひな形を作ってしまう手がありますが、 VMWare使いは、手で作らなくてはなりません。

ESXiホストに、ユーザーを追加する

作業用のmacで動くPackerで、ネットワーク上のVMWare ESXiにリモート接続します。 デフォルトでは、rootでSSHログインできません。 ここは真っ当に、別ユーザーを追加することにします。

以下の2点を確認します。 * 作業用WindowsのvSphereクライアントからESXiホストを参照し、『ローカルユーザーおよびグループ』タブから、ユーザーを追加します。 * 『権限』タブから、新規ユーザーに権限を付与します。ここでは、管理者権限を付与しました。

ESXiホストのSSHを有効化する

まず、VMWare ESXホストでSSH通信を有効化します。 ホストにログインし、コンソールから、以下のふたつの項目を選びます。

Troubleshooting Options -> - Enable ESXi Shell - Enabe SSH

ホストにSSHログインし、GuestIPHackを有効化する

SSHが有効になったら、作業用macから以下のコマンドでESXホストにログインします。 ssh (新規ユーザー)@ESXホストのアドレス

パスワードを入力し、ログインできたら、以下のコマンドを入力します。

esxcli system settings advanced set -o /Net/GuestIPHack -i 1

エラーなく完了したら、exitコマンドでSSHを抜けます。

Packer用のビルドファイルを作成

Packerを実行するためのファイルを作成します。 ここでは、先人の記述してくれたjsonファイルを、 ありがたく使わせていただく事にします。

git clone https://github.com/misheska/basebox-packer template/windows7ディレクトリから、 ここではwin7x86-pro.jsonを選択します。 インストーラのパスなどを実際のものに置き換えた後、以下のコマンドで内容を確認します。

packer validate vmware_win7.json

エラーが出なければ、以下のコマンドでビルドを行います。

packer build vmware_win7.json

1回失敗するごとに、OSインストール分の時間がかかるので、 小さな修正が一番つらい。 がんばりましょう。

Comments