압축된 최소 KVM 템플릿 만들기

2679 단어 guideqemulinuxkvm
참고❗: Libvirt를 사용하여 내 가상 머신을 자동화하는 방법을 배울 수 있도록 이것은 순전히 자가 학습을 위한 것입니다.

목표




                  virt-sysprep        virt-sysprep
                    (reset)      (add user, keys, logos)
                        |                   |
                dd      v          dd       v
original guest ----> template ---------> copied ------> custom
                                          template         guest 


이를 시작하려면 먼저 virt-install 또는 virt-manager를 사용하여 KVM에 가상 머신을 설치해야 합니다. 자동화는 킥스타트를 통해 또는 클라우드 이미지를 다운로드하여 가능하며 수동으로 했습니다.

이것은 설치 후의 기본 이미지였으며 디스크에서 약 2.1GB, 가상적으로 10GB였습니다.

qemu-img info "rocky-linux.qcow2"
file format: qcow2
virtual size: 10 GiB (10737418240 bytes)
disk size: 2.25 GiB

디스크에서 이미지 크기를 1GB로 만들고 완료하는 데 약 5분이 걸리는 compress와 함께 dd 대신 virt-sparsify를 사용했습니다.

sudo virt-sparsify --tmp=./ --compress rocky-linux.qcow2 rocky-linux-template.qcow2

최종 파일 "rocky-linux-template.qcow2"는 1GB 🔥입니다.

sudo qemu-img info rocky-linux-template.qcow2
  virtual size: 10 GiB (10737418240 bytes)
  disk size: 0.993 GiB

이제 virt-sysprep을 해보자

sudo virt-sysprep -a rocky-linux-template.qcow2

다시 virt-sparsify 할 시간

sudo virt-sparsify --tmp=./ --compress rocky-linux-template.qcow2 rocky-linux-g1.qcow2

ssh 키를 추가하고 시스템 레이블을 다시 지정할 시간입니다.

sudo virt-sysprep --format=qcow2 -a rocky-linux-g1.qcow2 \
--ssh-inject root:file:.ssh/id_rsa.pub \
--selinux-relabel --hostname rk-g1-minimal

이것으로 손님 만들기

  virt-install --connect qemu:///system \
      --name "${VM_NAME}" \
      --disk "${VM_DISK_PATH}",target.bus=virtio \
      --boot hd \
      --memory=1048 \
      --noautoconsole \
      --graphics none \
      --os-variant "${VM_OS_VARIANT}" \
      --vcpus 2 \
      --cpu host \
      --os-type linux \
      --network network=br0,model=virtio \
      --console pty,target_type=serial

그리고 완료✌️

좋은 웹페이지 즐겨찾기