どのコマンドをどの順番で実施するか色々とやり方はあるが、ここでの手順は:
centos7-origin
を作成centos7-template
を作成centos7a
をクローンベースとテンプレートを分けてベースを残しているのは、テンプレートの再作成が簡単そうだから。
CentOS 7をコンソールでインストール。
virt-install --name centos7-origin --memory 2048 --vcpus 1 --disk size=8 --os-variant centos7.0 --location /var/lib/libvirt/images/CentOS-7-x86_64-Minimal-2009.iso --nographics --extra-args='console=tty0 console=ttyS0,115200n8'
インストールの設定例:
ゲストの追加設定:
yum install qemu-guest-agent systemctl enable qemu-guest-agent --now vi /etc/chrony.conf # modify server to pool visudo # set %wheel ALL=(ALL) NOPASSWD: ALL vi /etc/ssh/sshd_config # set UseDNS no yum -y install man-pages man-pages-overrides
ホストからゲストにSSHの公開鍵をコピー。
virsh domifaddr centos7-origin ssh-copy-id -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@ゲストのIP
ベースとなる仮想マシンを停止する。
virsh shutdown centos7-origin virsh list --all
ディスクスペースに余裕が無いなら必要に応じて以下を実行。
virt-sparsify --in-place /var/lib/libvirt/images/centos7-origin.qcow2
仮想マシンのクローンを作成してから、複製しただけでは使えない設定をvirt-sysprep
で削除。
virt-clone -o centos7-origin -n centos7-template --file /var/lib/libvirt/images/centos7-template.qcow2 virt-sysprep -d centos7-template --operations defaults,-ssh-userdir
ユーザのSSH設定ディレクトリを削除しないように設定しているが、削除するならvirt-sysprep
のオプション--operations defaults,-ssh-userdir
は不要。
テンプレートから仮想マシンをクローンした後に、ホスト名の設定などを実施。
virt-clone -o centos7-template -n centos7a --file /var/lib/libvirt/images/centos7a.qcow2 virt-sysprep --enable customize,lvm-uuids,machine-id --selinux-relabel --hostname centos7a.localdomain -d centos7a
ディスクサイズを変更したい場合はvirt-resizeを実行する。
クローンを起動してコンソールで接続。
virsh start centos7a virsh console centos7a