Nutanix AHV では、VM を作成/クローンするときに、ゲスト OS の初回起動時に実行されるカスタムスクリプトを指定することができます。Linux の場合は cloud-init、Windows では、Sysprep と応答ファイルの仕組みが利用されています。
今回は、カスタム スクリプトで Windows ゲスト OS を AD(Active Directory)に参加させてみます。
今回の環境
- Nutanix CE バージョン: 2019.02.11 LTS
- AD: Windows Server 2016
- AD ドメイン名: test.local
- AD のアドレス: 10.0.6.201 (ドメイン コントローラと DNS は同居)
- ドメイン参加するクライアント: Windows Server 2016
ゲスト OS はインストールずみ。 - Nutanix の IPAM を利用。
事前準備
Sysprep の実行(GUI の場合)
AD に参加させるクライアント側の準備をします。
AD 参加させる Windows ゲスト OS は、ISO インストーラで OS をインストールしたあとで、Sysprep (C:\Windows\System32\Sysprep\sysprep.exe)を実行しています。
エクスプローラで Sysprep.exe をダブルクリックし、下記のようなパラメータで実行します。カスタム スクリプトを実行するには、このまま再起動しないように「シャットダウン」を選択しておきます。
- システム クリーンアップ アクション: システムの OOBE (Out-of-Box Experience) に入る
- 一般化する: チェックあり
- シャットダウン オプション: シャットダウン
「OK」をクリックすると、処理のあと自動的に VM が停止されます。このタイミングで、あとでリトライしやすいように、VM のスナップショットを取得しておくと便利です。
Sysprep の実行(CLI の場合)
Sysprep は、コマンドプロンプト/PowerShell のコマンドラインでも実行できます。
コマンドであれば、つぎのように実行できます。コマンドであれば、同様の仮想マシンである前提で処理を少し省略する「 /mode:vm」を指定することもできます。
次のように、フルパスで実行することもできます。
PS> C:\Windows\System32\Sysprep\sysprep.exe /quiet /oobe /generalize /shutdown /mode:vm
応答ファイルの作成
カスタム スクリプトで入力する、XML 形式の応答ファイル(いわゆる Unattend.xml)を作成しておきます。今回は、下記のようなファイルを使用しています。このファイルの作成方法は、Windows Assessment and Deployment Kit(ADK) に含まれる「Windows システム イメージ マネージャー」で生成したものを編集するのが一般的かなと思います。
コンピュータ名を設定する場合は ComputerName を「*」から実際のコンピュータ名に変更します。また、ドメイン名やパスワードは環境に合わせて指定します。
仮想ネットワークでの IPAM 設定
今回は、Windows ゲスト OS のネットワーク 設定で、Nutanix の IPAM(IP アドレス管理)機能を利用しています。
仮想ネットワークの IPAM 設定を利用するうえで、「ドメイン 設定の構成」のチェックをいれて、ドメイン名サーバー(DNS サーバ)で、ドメイン参加で必要になる名前解決ができる DNS サーバのアドレスを指定しておきます。
カスタムスクリプトでの AD ドメイン参加
カスタム スクリプトでのドメイン参加をためします。今回は、Sysprep 実行ずみの VM をクローンします。
Sysprep ずみの VM(win-2016-01)を選択して、Clone をクリックすると「Clone VM」画面がひらくので適宜パラメータを入力します。
「Clone VM」画面をスクロールすると、「Network Adapters (NIC)」で、vNIC にわりあてられた仮想ネットワークを確認できます。さきほど IPAM 設定を確認した仮想ネットワークが設定されていることを確認します。Prism で仮想ネットワークを変更する場合は、「×」をクリックして削除してから、「Add New NIC」であらためて追加します。
さらに画面を下にスクロールすると、「Custom Script」があるので、チェックを入れて、「Type Or Paste Script」の欄に、用意しておいた応答ファイルの内容を貼り付けて、「Save」をクリックします。ここで張り付けた XML の内容は、ゲスト OS の初回起動時だけ実行されます。また、XML の内容はあとから書き換えられないので、やり直す場合はあらためて VM をクローン(または VM 作成)して、この欄に XML を貼り付けます。
VM がクローンされたら、「Power on」で起動します。起動されたら Power on のとなりにある「Launch Console」で ゲスト OS が起動する様子を確認できます。
ゲスト OS の自動処理が完了されるのを待ちます。
確認
処理が終わると、ドメイン参加されてログイン画面に「サインイン先: TEST」と表示されます。「TEST\Administrator」のように、AD のアカウントでログイン可能です。また、ローカル管理者アカウント(.\Administrator)にも、応答ファイルに記載したローカルアドミニストレータでログインできます。
ドメイン参加された状態になりました。ちなみに Windows コンピュータ名も、応答ファイルで設定(「*」をコンピュータ名に書き換えて)しています。
ちなみに、Linux でのカスタム スクリプトの利用については下記をどうぞ。
以上。