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" }
以上。