11.2. 仮想マシンテンプレートの作成
正常に機能する複数のクローン仮想マシンを作成するには、SSH 鍵や永続的なネットワーク MAC 設定などの、ソース仮想マシンに固有の情報および設定を削除します。これにより、仮想マシンのクローンを簡単かつ安全に作成するのに使用できる仮想マシンの テンプレート が得られます。
仮想マシンテンプレートは 、virt-sysprep ユーティリティーを使用して作成することも、要件に基づいて手動で作成することもできます。
11.2.1. virt-sysprep を使用した仮想マシンテンプレートの作成 リンクのコピーリンクがクリップボードにコピーされました!
既存の仮想マシン (VM) から複製テンプレートを作成するには、virt-sysprep ユーティリティーを使用できます。このユーティリティーにより、特定のネットワーク設定やシステム登録メタデータなど、クローンが正しく機能しない可能性がある特定の設定が削除されます。
その結果、virt-sysprep は仮想マシンのクローンをより効率的に作成し、クローンがより確実に動作するようにします。
前提条件
virt-sysprepユーティリティーを含むguestfs-toolsパッケージがホストにインストールされます。# dnf install guestfs-tools- テンプレートとして使用するソース仮想マシンがシャットダウンしている。
-
Windows 仮想マシンのテンプレートを作成する場合、ゲストオペレーティングシステムで
sysprepプログラムを使用してセキュリティー ID (SID) をリセットする必要があります。手順については、Windows インストールの一般化を 参照してください。 ソース仮想マシンのディスクイメージの場所を把握しており、その仮想マシンのディスクイメージファイルの所有者である。
libvirtのシステム接続で作成された仮想マシンのディスクイメージは、デフォルトでは/var/lib/libvirt/imagesディレクトリーにあり、root ユーザーが所有していることに注意してください。# ls -la /var/lib/libvirt/images -rw-------. 1 root root 9665380352 Jul 23 14:50 a-really-important-vm.qcow2 -rw-------. 1 root root 8591507456 Jul 26 2017 an-actual-vm-that-i-use.qcow2 -rw-------. 1 root root 8591507456 Jul 26 2017 totally-not-a-fake-vm.qcow2 -rw-------. 1 root root 10739318784 Sep 20 17:57 another-vm-example.qcow2- オプション: ソース仮想マシンのディスク上の重要なデータがすべてバックアップされている。ソース仮想マシンをそのまま保持する場合は、クローンを作成 してから、そのクローンをテンプレートに変換します。
手順
仮想マシンのディスクイメージの所有者としてログインしていることを確認します。
# whoami rootオプション: 仮想マシンのディスクイメージをコピーします。
# cp /var/lib/libvirt/images/vm-name.qcow2 /var/lib/libvirt/images/vm-name-original.qcow2これは後で、仮想マシンが正常にテンプレートに変換されたことを確認するために使用されます。
次のコマンドを使用し、/var/lib/libvirt/images/vm-name.qcow2 を、ソース仮想マシンのディスクイメージへのパスに置き換えます。
# virt-sysprep -a /var/lib/libvirt/images/vm-name.qcow2 [ 0.0] Examining the guest ... [ 7.3] Performing "abrt-data" ... [ 7.3] Performing "backup-files" ... [ 9.6] Performing "bash-history" ... [ 9.6] Performing "blkid-tab" ... [...]必要に応じて、
virt-sysprepユーティリティーがディスクイメージに対して実行する変更を調整することもできます。詳細は、システム上のvirt-sysprepman ページの OPERATIONS セクションを参照してください。
検証
プロセスが成功したことを確認するには、変更したディスクイメージを元のイメージと比較します。次の例は、テンプレートの作成例を示しています。
# virt-diff -a /var/lib/libvirt/images/a-really-important-vm-orig.qcow2 -A /var/lib/libvirt/images/a-really-important-vm.qcow2 - - 0644 1001 /etc/group- - - 0000 797 /etc/gshadow- = - 0444 33 /etc/machine-id [...] - - 0600 409 /home/username/.bash_history - d 0700 6 /home/username/.ssh - - 0600 868 /root/.bash_history [...]