Nutanix AHV では、VM を作成/クローンするときに、カスタム スクリプトとして Sysprep の応答ファイルを指定することができます。
前回は、GUI(Prism)を利用して、カスタム スクリプトによる Windows ゲスト OS の AD(Active Directory)ドメイン参加をためしました。
今回は、acli(CLI)同様の手順をためしてみます。環境は前回の投稿と同じで、ドメイン参加させる Windows VM (クローン元)も前回と同じものを使用しています。
応答ファイルの準備
前回と同じ応答ファイルのサンプルを使用しますが、今回は一時的に CVM でダウンロードしてから編集をします。
一時的に /tmp ディレクトリにダウンロードします。
CVM$ curl -o /tmp/Unattend.xml https://gist.githubusercontent.com/gowatana/073717be9e82787dc1962ed8c3953d06/raw/Unattend.xml
コンピュータ名、パスワード指定を編集します。
CVM$ cp /tmp/Unattend.xml /tmp/win-2016-03.xml CVM$ vi /tmp/win-2016-03.xml
編集箇所は下記です。
CVM$ diff /tmp/Unattend.xml /tmp/win-2016-03.xml 7c7 < <ComputerName>*</ComputerName> --- > <ComputerName>win-2016-03</ComputerName> 17c17 < <Password>パスワード</Password> --- > <Password>nutanix/4u</Password> 32c32 < <Value>パスワード</Value> --- > <Value>nutanix/4u</Value>
vi エディタではなく、sed などで編集することもできます。
CVM$ cp /tmp/Unattend.xml /tmp/win-2016-03.xml CVM$ sed -i 's@<ComputerName>.*@<ComputerName>win-2016-03</ComputerName>@' /tmp/win-2016-03.xml CVM$ sed -i 's@<Password>パスワード</Password>@<Password>nutanix/4u</Password>@' /tmp/win-2016-03.xml CVM$ sed -i 's@<Value>パスワード</Value>@<Value>nutanix/4u</Value>@' /tmp/win-2016-03.xml
応答ファイルを指定しつつ、VM をクローンします。
CVM$ acli uhura.vm.clone_with_customize win-2016-03 container=ctr-01 num_vcpus=1 memory=4G clone_from_vm=win-2016-01 sysprep_config_path=file:///tmp/win-2016-03.xml win-2016-03: pending win-2016-03: complete
VM を起動します。
CVM$ acli vm.on win-2016-03 win-2016-03: pending win-2016-03: complete
Prism で VM のコンソールを開き、Windows ゲスト OS の自動処理を待ちます。処理が終わると、Windows はドメイン参加された状態になるはずです。

ちなみに、この VM のネットワーク設定には、vNIC に割り当てられている仮想ネットワークの IPAM を利用しています。仮想ネットワークの割り当ては、クローン元の VM のものをそのまま引き継いでいます。
CVM$ acli vm.nic_list win-2016-03 Mac Address IP Address Network UUID Network Name 50:6b:8d:0f:ca:31 10.0.6.59 b4c5719e-0adc-4e74-99d3-9eba5abcbde4 vlan-6-ipam
今回は DHCP オプション 6 の DNS サーバの指定で、AD の DNS サーバを指定しています。今回の IPAM については、あらかじめ Prism で設定しておきました。
CVM$ acli net.get vlan-6-ipam
vlan-6-ipam {
identifier: 6
ip_config {
dhcp_option_list {
option_code: 6
option_name: "dns"
option_value: "10.0.6.201"
}
dhcp_server_address: "10.0.6.254"
ip_pool_list {
end_address: "10.0.6.99"
start_address: "10.0.6.50"
}
network_address: "10.0.6.0"
prefix_length: 24
route_list {
gateway: "10.0.6.1"
network_address: "0.0.0.0"
prefix_length: 0
}
}
logical_timestamp: 17
name: "vlan-6-ipam"
type: "kBridged"
uuid: "b4c5719e-0adc-4e74-99d3-9eba5abcbde4"
}
以上。
