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/sysconfig/network-scripts/ifcfg-eth[x] 를 편집하여 ifcfg 스크립트에서 고유한 네트워크 세부 정보를 제거합니다.

      1. HWADDR 및 정적 줄을 제거합니다.

        참고

        HWADDR이 새 게스트의 MAC 주소와 일치하지 않으면 ifcfg 가 무시됩니다.

        DEVICE=eth[x] BOOTPROTO=none ONBOOT=yes #NETWORK=10.0.1.0 <- REMOVE #NETMASK=255.255.255.0 <- REMOVE #IPADDR=10.0.1.20 <- REMOVE #HWADDR=xx:xx:xx:xx:xx <- REMOVE #USERCTL=no <- REMOVE # Remove any other *unique or non-desired settings, such as UUID.*
      2. DHCP를 구성하지만 HWADDR 또는 기타 고유 정보는 포함하지 마십시오.

        DEVICE=eth[x] BOOTPROTO=dhcp ONBOOT=yes
    3. 다음 파일에도 시스템에 있는 경우 동일한 콘텐츠가 포함되어 있는지 확인합니다.

      • /etc/sysconfig/networking/devices/ifcfg-eth[x]
      • /etc/sysconfig/networking/profiles/default/ifcfg-eth[x]

        참고

        NetworkManager 또는 VM과 함께 특수 설정을 사용한 경우 ifcfg 스크립트에서 추가 고유 정보가 제거되었는지 확인합니다.

  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. 여러 머신에서 실행되는 경우 충돌을 일으킬 수 있는 다른 애플리케이션별 식별자 또는 구성을 제거합니다.
  5. gnome-initial-setup-done 파일을 제거하여 다음 부팅 시 구성 마법사를 실행하도록 VM을 구성합니다.

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

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