Red Hat Training

A Red Hat training course is available for RHEL 8

8.2. 仮想マシンテンプレートの作成

仮想マシンのクローンが適切に実行されるようにするには、仮想マシンのクローンを作成する前に、クローン元の仮想マシンに固有の情報および設定 (SSH キーや永続的なネットワーク MAC 設定など) を削除します。

これにより、仮想マシンのクローンを簡単かつ安全に作成するのに使用できる仮想マシンの テンプレート が作成されます。

前提条件

  • virt-sysprep ユーティリティーがホストにインストールされている。

    # yum install /usr/bin/virt-sysprep
  • テンプレートとして使用する仮想マシンがシャットダウンしている。
  • ソースの仮想マシンのディスクイメージの場所と、仮想マシンのディスクイメージファイルの所有者情報がある。

    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
  • (必要に応じて) 仮想マシンのディスクにある重要なデータのバックアップが作成されている。ソースの仮想マシンをそのまま保持する場合は、クローン を作成してから、そのクローンを編集してテンプレートを作成します。

手順

  1. 仮想マシンのディスクイメージの所有者としてログインしていることを確認します。

    # whoami
    root
  2. (必要に応じて) 仮想マシンのディスクイメージをコピーします。

    # cp /var/lib/libvirt/images/a-really-important-vm.qcow2 /var/lib/libvirt/images/a-really-important-vm-original.qcow2

    これは後で、仮想マシンがテンプレートに正常に変換されたことを確認するのに使用されます。

  3. 次のコマンドを使用し、/var/lib/libvirt/images/a-really-important-vm.qcow2 を、ソース仮想マシンのディスクイメージへのパスに置き換えます。

    # virt-sysprep -a /var/lib/libvirt/images/a-really-important-vm.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-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
    [...]

関連情報

  • 上記のように virt-sysprep コマンドを使用して、標準の仮想マシンテンプレートの準備を行います。詳細は、virt-sysprep man ページの OPERATIONS セクションを参照してください。

    virt-sysprep が実行する特定の操作をカスタマイズするには、--operations オプションを使用し、目的の操作をコンマ区切りで指定します。

  • 仮想マシンテンプレートのクローン作成手順は、「コマンドラインインターフェースで仮想マシンのクローン作成」 を参照してください。