검색

11.2. 가상 머신 템플릿 생성

download PDF

올바르게 작동하는 여러 VM(가상 머신) 복제를 생성하려면 SSH 키 또는 영구 네트워크 MAC 구성과 같은 소스 VM에 고유한 정보 및 구성을 제거할 수 있습니다. 이렇게 하면 VM 복제를 쉽고 안전하게 생성하는 데 사용할 수 있는 VM 템플릿이 생성됩니다.

virt-sysprep 유틸리티를 사용하여 VM 템플릿을 생성하거나 요구 사항에 따라 수동으로 생성할 수 있습니다.

11.2.1. virt-sysprep을 사용하여 가상 머신 템플릿 생성

기존 VM(가상 머신)에서 복제 템플릿을 생성하려면 virt-sysprep 유틸리티를 사용할 수 있습니다. 이렇게 하면 특정 네트워크 설정 또는 시스템 등록 메타데이터와 같이 복제본이 잘못 작동할 수 있는 특정 구성이 제거됩니다. 결과적으로 virt-sysprep 을 사용하면 VM의 클론을 보다 효율적으로 생성하고 복제본이 더 안정적으로 작동합니다.

사전 요구 사항

  • virt-sysprep 유틸리티가 포함된 guestfs-tools 패키지가 호스트에 설치되어 있습니다.

    # dnf install guestfs-tools
  • 템플릿으로 설계된 소스 VM이 종료됩니다.
  • 소스 VM의 디스크 이미지가 어디에 있는지 알고 VM의 디스크 이미지 파일의 소유자입니다.

    libvirt의 시스템 연결에 생성된 VM의 디스크 이미지는 /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
  • 선택 사항: 소스 VM 디스크의 중요한 데이터가 백업되었습니다. 소스 VM을 그대로 유지하려면 먼저 복제 한 후 복제본을 템플릿으로 전환합니다.

프로세스

  1. VM의 디스크 이미지의 소유자로 로그인했는지 확인합니다.

    # whoami
    root
  2. 선택 사항: VM의 디스크 이미지를 복사합니다.

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

    나중에 VM이 템플릿으로 변환되었는지 확인하는 데 사용됩니다.

  3. 다음 명령을 사용하고 /var/lib/libvirt/images/a-really-important-vm.qcow2 를 소스 VM의 디스크 이미지 경로로 바꿉니다.

    # 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
    [...]

추가 리소스

11.2.2. 수동으로 가상 머신 템플릿 생성

기존 VM(가상 머신)에서 템플릿을 생성하려면 게스트 VM을 수동으로 재설정하거나 구성 해제하여 복제를 준비할 수 있습니다.

사전 요구 사항

  • 소스 VM의 디스크 이미지 위치를 알고 VM의 디스크 이미지 파일 소유자인지 확인합니다.

    libvirt의 시스템 연결에 생성된 VM의 디스크 이미지는 기본적으로 /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
  • VM이 종료되었는지 확인합니다.
  • 선택 사항: VM 디스크의 중요한 데이터가 백업됩니다. 소스 VM을 그대로 유지하려면 먼저 복제 한 후 복제본을 편집하여 템플릿을 생성합니다.

프로세스

  1. 복제를 위해 VM을 구성합니다.

    1. 복제본에 필요한 소프트웨어를 설치합니다.
    2. 운영 체제에 대해 고유하지 않은 설정을 구성합니다.
    3. 고유하지 않은 애플리케이션 설정을 구성합니다.
  2. 네트워크 구성을 제거합니다.

    1. 다음 명령을 사용하여 영구 udev 규칙을 제거합니다.

      # rm -f /etc/udev/rules.d/70-persistent-net.rules
      참고

      udev 규칙이 제거되지 않으면 첫 번째 NIC의 이름이 eth0 대신 eth1 일 수 있습니다.

    2. /etc/NetworkManager/system-connections/ 디렉터리의 NMConnection 파일에서 고유한 정보를 제거합니다.

      1. MAC 주소, IP 주소, DNS, 게이트웨이 및 기타 고유 정보 또는 원하지 않는 설정을 제거합니다.

        *ID=ExampleNetwork
        BOOTPROTO="dhcp"
        HWADDR="AA:BB:CC:DD:EE:FF"                  <- REMOVE
        NM_CONTROLLED="yes"
        ONBOOT="yes"
        TYPE="Ethernet"
        UUID="954bd22c-f96c-4b59-9445-b39dd86ac8ab" <- REMOVE
      2. /etc/hosts/etc/resolv.conf 파일에서 유사한 고유 정보 및 원하지 않는 설정을 제거합니다.
  3. 등록 세부 정보 삭제:

    • RHN(Red Hat Network)에 등록된 VM의 경우:

      # rm /etc/sysconfig/rhn/systemid
    • RHSM(Red Hat Subscription Manager)에 등록된 VM의 경우:

      • 원래 VM을 사용하지 않으려면 다음을 수행합니다.

        # subscription-manager unsubscribe --all # subscription-manager unregister # subscription-manager clean
      • 원래 VM을 사용하려는 경우:

        # subscription-manager clean
        참고

        원래 RHSM 프로필은 ID 코드와 함께 포털에 남아 있습니다. 복제 후 VM에서 RHSM 등록을 다시 활성화하려면 다음 명령을 사용합니다.

        # subscription-manager register --consumerid=71rd64fx-6216-4409-bf3a-e4b7c7bd8ac9
  4. 다른 고유한 세부 정보 제거:

    1. SSH 공개 및 개인 키 쌍을 제거합니다.

      # rm -rf /etc/ssh/ssh_host_example
    2. LVM 장치의 구성을 제거합니다.

      # rm /etc/lvm/devices/system.devices
    3. 여러 시스템에서 실행되는 경우 충돌이 발생할 수 있는 기타 애플리케이션별 식별자 또는 구성을 제거합니다.
  5. gnome-initial-setup-done 파일을 제거하여 다음 부팅 시 구성 마법사를 실행하도록 VM을 구성합니다.

    # rm ~/.config/gnome-initial-setup-done
    참고

    다음 부팅 시 실행되는 마법사는 VM에서 제거된 구성에 따라 다릅니다. 또한 복제본을 처음 부팅할 때는 호스트 이름을 변경하는 것이 좋습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.