KVM仮想マシンテンプレートを作成する方法


仮想マシンテンプレートは、基本的に、インストールされた仮想マシンのコピーであり、仮想マシンの複数のインスタンスを展開する場合に役立ちます。テンプレートの作成は、仮想マシンの作成、インストールする必要のあるすべてのパッケージのインストール、最後にテンプレートのクリーンアップを含む3ステップのプロセスです。

先に進んで、これをどのように達成できるかを見てみましょう。

ステップ1:LinuxにKVMをインストールする

最初のステップは、システムにKVMをインストールすることです。以下に関する包括的なチュートリアルがあります。

さらに、libvirtdデーモンが実行されており、起動時に自動的に開始できるようになっていることを確認してください。

$ sudo systemctl enable libvirtd
$ sudo systemctl start libvirtd

libvirtdデーモンが実行されているかどうかを確認します。

$ sudo systemctl status libvirtd

Ubuntu/Debianシステムを実行している場合は、vhost-netイメージがロードされていることを確認してください。

$ sudo modprobe vhost_net

ステップ2:KVM仮想イメージを作成する

テンプレートを作成する前に、まず、インストールインスタンスを用意する必要があります。コマンドラインで、次に示すように、qemu-imgコマンドを使用して20G CentOS 8KVMイメージを作成します。

$ sudo qemu-img create -o preallocation=metadata -f qcow2 /var/lib/libvirt/images/centos8.qcow2 20G

次に、virt-installコマンドを使用して、図のようにCentOS8仮想マシンを作成します。

$ sudo virt-install --virt-type kvm --name centos8 --ram 2096 \
--disk /var/lib/libvirt/images/centos8.qcow2,format=qcow2 \
--network network=default \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--os-type=linux --os-variant=rhel7.0 \
--location=/home/tecmint/Downloads/CentOS-8-x86_64-1905-dvd1.iso

これにより、仮想マシンインスタンスが起動します。これを確認するには、virt-managerに移動し、図のようにコンソールウィンドウを開きます。表示されるのは、インストーラーのデフォルトのウェルカムページです。必ず最後までインストールを完了してください。

ステップ3:KVM仮想マシンテンプレートイメージを作成する

インストールが完了したら、VMにログインして、すべてのシステムパッケージを更新します。

$ sudo dnf update

開始するために不可欠であると思われる前提条件パッケージをインストールします。この場合、EPEL release、wget、curl、net-tools、vimをインストールします。これはあなたの場合とは異なるかもしれません。

$ sudo dnf install epel-release wget curl net-tools vim

テンプレートをクラウドプラットフォームにデプロイする場合は、図のようにcloud-initパッケージをインストールします。

$ sudo dnf install cloud-init cloud-utils-growpart acpid

次に、zeroconfルートを無効にします。

$ echo "NOZEROCONF=yes" >> /etc/sysconfig/network

完了したら、必ず仮想マシンの電源を切り、図のようにVMテンプレートイメージをクリーンアップしてください。

$ sudo virt-sysprep -d centos8

virt-sysprepは、仮想マシンからクローンを作成するために仮想マシンをリセットするコマンドラインユーティリティです。 SSHホストキー、ログファイル、ユーザーアカウント、一部の永続的なネットワーク構成などのエントリを削除します。このコマンドを使用するには、まず、VMの電源がオフになっていることを常に確認する必要があります。

$ sudo virt-sysprep -d centos8

最後に、VMドメインの定義を解除するために示されているコマンドを呼び出します。

$ sudo virsh undefine centos8

これで、テンプレートイメージのクローン作成と展開の準備が整いました。