7장. 템플릿

템플릿이란 가상 머신의 복사본이며, 사용자는 이를 사용해서 차후에 비슷한 가상 머신을 생성하는 반복적인 작업을 간소화할 수 있습니다. 템플릿은 소프트웨어 설정, 하드웨어 설정, 그리고 템플릿의 기반이 되는 가상 머신에 설치된 소프트웨어를 캡처합니다. 템플릿의 기반이 되는 가상 머신을 소스 가상 머신이라고 합니다.
가상 머신을 바탕으로 템플릿을 생성 시 가상 머신 디스크의 읽기 전용 사본이 생성됩니다. 이러한 읽기 전용 디스크는 새로운 템플릿과 이 템플릿을 바탕으로 생성된 모든 가상 머신의 기본 디스크 이미지가 됩니다. 그렇기 때문에 이 템플릿을 바탕으로 생성된 가상 머신이 환경에 하나라도 있는 한 이 템플릿을 삭제할 수 없습니다.
템플릿을 바탕으로 생성된 가상 머신은 소스 가상 머신과 같은 NIC 유형 및 드라이버를 사용하지만 별도의 고유 MAC 주소가 부여됩니다.
템플릿 탭 및 가상 머신 탭에서 직접 가상 머신을 생성할 수 있습니다. 템플릿 탭에서는 원하는 템플릿을 오른쪽 클릭하여 새 가상 머신을 선택합니다. 새 가상 머신의 설정 및 제어 선택 방법에 대한 자세한 내용은 A.1.1절. “가상 머신 일반 설정”에서 참조하십시오.

7.1. 가상 머신 템플릿 배포 전 봉인

다음 부분에서는 Linux 가상 머신 및 Windows 가상 머신을 봉인하는 절차가 설명되어 있습니다. 봉인이란 가상 머신을 바탕으로 템플릿을 생성하기 전에 그 가상 머신에서 특정 시스템 관련 상세정보를 모두 제거하는 것을 말합니다. 봉인을 해야 같은 템플릿을 바탕으로 생성된 여러 가상 머신에서 동일한 상세정보가 표시되는 것을 막을 수 있습니다. 또한 이를 통해 예측 가능한 vNIC 순서 등 다른 기능이 제대로 작동하도록 할 수 있습니다.

7.1.1. Linux 가상 머신 템플릿 배포를 위한 봉인

Linux 가상 머신을 사용하여 템플릿을 생성하기 전에 그 가상 머신을 봉인하는 방법은 수동으로 하거나 sys-unconfig 명령을 사용하는 두 가지 방법이 있습니다. Linux 가상 머신을 수동으로 봉인하려면 가상 머신에 플래그 역할을 하는 파일을 생성해서 다음에 가상 머신을 시작 시 각종 설정 작업이 시작되도록 해야 합니다. sys-unconfig 명령을 사용하여 이 프로세스를 자동화할 수 있습니다. 하지만 이 두 가지 방법 모두 어떤 가상 머신 특유의 파일을 수동으로 삭제하거나 그 가상 머신을 바탕으로 생성된 템플릿으로 생성된 가상 머신에 충돌을 일으킬 수 있는 파일을 수동으로 삭제해야 합니다. 그러므로 두 방법 모두 Linux 가상 머신을 봉인하는 올바른 방법이며 동일한 결과를 달성할 수 있습니다.

7.1.1.1. Linux 가상 머신 템플릿 배포를 위한 수동 봉인

Linux 가상 머신 을 바탕으로 템플릿을 생성하기 전에 그 가상 머신을 일반화(봉인)해야 합니다.

절차 7.1. Linux 가상 머신 봉인

  1. 가상 머신에 로그인합니다.
  2. 시스템을 다시 설정하도록 플래그를 지정합니다:
    # touch /.unconfigured
  3. SSH 호스트 키를 제거합니다.
    # rm -rf /etc/ssh/ssh_host_*
  4. 호스트 이름을 localhost.localdomain으로 변경합니다.
    • Red Hat Enterprise Linux 6의 경우 /etc/sysconfig/network에 있는 HOSTNAME 값을 편집합니다.
      HOSTNAME=localhost.localdomain
    • Red Hat Enterprise Linux 7의 경우 hostnamectl 명령을 사용합니다.
      # hostnamectl set-hostname localhost.localdomain
  5. /etc/udev/rules.d/70-*을 삭제합니다:
    # rm -rf /etc/udev/rules.d/70-*
  6. /etc/sysconfig/network-scripts/ifcfg-eth*에서 HWADDR행 및 UUID행을 삭제합니다.
  7. 옵션으로 /var/log에서 모든 로그를 삭제하고 /root에서 로그를 만듭니다.
  8. 가상 머신을 종료합니다:
    # poweroff
가상 머신이 봉인되었으며 템플릿을 만들 수 있습니다. 이 템플릿을 사용하여 설정 파일 충돌 없이 Linux 가상 머신을 배포할 수 있습니다.
제시된 방법은 Red Hat Enterprise Linux 가상 머신을 템플릿으로 사용하기 위해 봉인하기 위한 최소 단계입니다. 특정 호스트 및 사이트에 대한 추가적인 사용자 정의 단계가 더 있습니다.

7.1.1.2. sys-unconfig을 사용하여 Linux 가상 머신 템플릿 배포를 위한 봉인

Linux 가상 머신을 바탕으로 템플릿을 생성하기 전에 그 가상 머신을 일반화(봉인)해야 합니다.

절차 7.2. sys-unconfig을 사용하여 Linux 가상 머신 봉인

  1. 가상 머신에 로그인합니다.
  2. SSH 호스트 키를 제거합니다.
    # rm -rf /etc/ssh/ssh_host_*
  3. 호스트 이름을 localhost.localdomain으로 변경합니다.
    • Red Hat Enterprise Linux 6의 경우 /etc/sysconfig/network에 있는 HOSTNAME 값을 편집합니다.
      HOSTNAME=localhost.localdomain
    • Red Hat Enterprise Linux 7의 경우 hostnamectl 명령을 사용합니다.
      # hostnamectl set-hostname localhost.localdomain
  4. /etc/sysconfig/network-scripts/ifcfg-eth*에서 HWADDR행 및 UUID행을 삭제합니다.
  5. 옵션으로 /var/log에서 모든 로그를 삭제하고 /root에서 로그를 만듭니다.
  6. 다음 명령을 실행합니다:
    # sys-unconfig
가상 머신이 종료됩니다. 이제 가상 머신이 봉인되었으며 템플릿을 만들 수 있습니다. 이 템플릿을 사용하여 설정 파일 충돌 없이 Linux 가상 머신을 배포할 수 있습니다.

7.1.2. Windows 가상 머신 템플릿 배포를 위한 봉인

Windows 가상 머신을 위해 생성된 템플릿을 사용하여 가상 머신을 배포하기 전에 일반화(봉인)해야 합니다. 이를 통해 특정 시스템의 설정이 템플릿에 복사되는 것을 방지할 수 있습니다.
Sysprep 도구를 사용하여 Windows 템플릿을 사용하기 전에 봉인합니다.

중요

이 프로세스 중 가상 머신을 재부팅하지 않도록 합니다.
Sysprep 프로세스를 시작하기 전에 다음의 설정이 완료되었는지 확인합니다:
  • Windows Sysprep 매개 변수가 올바르게 정의되었는지 확인합니다.
    올바르지 않은 경우 편집을 클릭해서 운영 체제도메인 필드에 필요한 정보를 입력합니다.
  • Manager의 재정의(override) 파일에 올바른 제품 키가 정의되었는지 확인합니다.
    override 파일이 /etc/ovirt-engine/osinfo.conf.d/에 생성되어야 하며, 이 파일이 /etc/ovirt-engine/osinfo.conf.d/00-defaults.properties 뒤에 오고 .properties로 끝나도록 파일 이름을 만들어야 합니다. 예를 들어 /etc/ovirt-engine/osinfo.conf.d/10-productkeys.properties라고 할 수 있습니다. 마지막 파일이 우선시되며 이전의 다른 모든 파일을 덮어씁니다.
    그렇지 않은 경우, /etc/ovirt-engine/osinfo.conf.d/00-defaults.properties에 있는 사용자의 Windows 운영 체제 기본값을 override 파일에 복사해서 넣고 사용자 값을 productKey.valuesysprepPath.value 필드에 입력합니다.

    예 7.1. Windows 7 기본 설정값

    # Windows7(11, OsType.Windows, false),false
    os.windows_7.id.value = 11
    os.windows_7.name.value = Windows 7
    os.windows_7.derivedFrom.value = windows_xp
    os.windows_7.sysprepPath.value = ${ENGINE_USR}/conf/sysprep/sysprep.w7
    os.windows_7.productKey.value =
    os.windows_7.devices.audio.value = ich6
    os.windows_7.devices.diskInterfaces.value.3.3 = IDE, VirtIO_SCSI, VirtIO
    os.windows_7.devices.diskInterfaces.value.3.4 = IDE, VirtIO_SCSI, VirtIO
    os.windows_7.devices.diskInterfaces.value.3.5 = IDE, VirtIO_SCSI, VirtIO
    os.windows_7.isTimezoneTypeInteger.value = false

7.1.2.1. Windows 7, Windows 2008, 또는 Windows 2012 템플릿 봉인

Windows 7, Windows 2008, 또는 Windows 2012 템플릿을 사용해서 가상 머신을 배포하기 전에 해당 템플릿을 봉인합니다.

절차 7.3. Windows 7, Windows 2008, 또는 Windows 2012 템플릿 봉인

  1. C:\Windows\System32\sysprep\sysprep.exe에서 Sysprep을 실행합니다.
  2. Sysprep 도구에 다음과 같은 내용을 입력합니다:
    • 시스템 정리 작업에서 시스템 OOBE(첫 실행 경험) 입력을 선택합니다.
    • 컴퓨터의 SID(시스템 고유 번호)를 변경해야 하는 경우 일반화 체크 상자를 선택합니다.
    • 종료 옵션에서 시스템 종료를 선택합니다.
  3. OK를 클릭하여 봉인 프로세스를 완료합니다. 완료 시 가상 머신은 자동으로 종료됩니다.
Windows 7, Windows 2008, 또는 Windows 2012 템플릿이 봉인되었으며 가상 머신을 배포할 준비가 되었습니다.