Computer >> 컴퓨터 >  >> 소프트웨어 >> 가상 머신

Kiwi 이미징 시스템 – 몇 시간 만에 나만의 운영체제 이미지를 만드는 방법

VMware 이미지, Xen 가상 머신, 라이브 DVD로 활용하거나 USB 스틱으로 부팅할 수 있는 맞춤형 운영체제 이미지를 직접 만들고 싶으신가요? 현재 사용 중인 물리적 설치 환경을 배포 가능한 이미지로 변환하고 싶으신가요? 복잡한 명령줄 작업 없이 간단한 시각적 마법사만 따라가면서 이 모든 과정을 단 몇 시간 안에 끝내고 싶으신가요? 답이 하나의 커다란 "예"라면, 지금 읽고 계신 이 글이 바로 당신을 위한 글입니다.

Kiwi 이미징 시스템 – 몇 시간 만에 나만의 운영체제 이미지를 만드는 방법

소개

이러한 목표를 달성하는 방법은 여러 가지가 있지만, Kiwi만큼 완성도 높고 강력한 도구는 드뭅니다.

Kiwi는 openSUSE Build Service에서 사용하는 도구 중 하나입니다. Build Service는 openSUSE를 비롯한 다양한 리눅스 배포판용 소프트웨어를 제작·배포할 수 있는 통합 개발 플랫폼이며, Kiwi는 그중에서도 openSUSE 자체에 특화되어 다음과 같은 작업을 수행할 수 있습니다.

  • 원하는 패키지만 포함된 openSUSE 기반의 부팅 가능한 라이브 CD/DVD 이미지 생성
  • 부팅 가능한 USB 이미지 제작
  • 설정 파일까지 포함된 Xen, VMware, QEMU 가상 이미지 생성
  • 현재 사용 중인 설치 환경을 어떤 형태로든 배포 가능한 이미지로 변환(마이그레이션)

사실 이런 멋진 기술들은 이미 여러 차례 접해본 바 있습니다.

  • Remastersys: 데비안 계열 배포판에서 동작하며, 백업용이든 라이브 CD/DVD 배포용이든 물리적 설치 환경을 부팅 가능한 .iso 이미지로 변환해 줍니다.
  • PCLinuxOS의 remaster-on-the-fly: Remastersys와 유사한 기능을 제공합니다.
  • QEMU: VMware 하드 디스크(.vmdk)를 아마존 EC2 이미지(.ami)로 변환하는 데 활용된 바 있습니다.
  • VMware Server/ESXi 가상 머신 복제: 가상 머신 클로닝 방법 역시 다뤄본 적이 있습니다.
  • VMware Converter: 각종 이미지를 만들어내는 놀라운 도구입니다.

그럼에도 불구하고 이 솔루션들 중 일부는 필요한 모든 기능을 충족하지 못했습니다. 예컨대 Remastersys는 가상 머신 자체를 생성하지 않고 게스트 OS 설치에 쓸 수 있는 이미지만 제공하므로 추가 작업과 사용자 개입이 필요합니다. 아마존 변환 작업은 상당히 깔끔했지만 주로 명령줄 중심이라 사전 준비 단계도 많고 조작도 번거로웠습니다. VMware Converter는 거의 완전한 해결책을 제공했습니다. 그러나 Kiwi는 이 모든 것을 한 번에 처리할 수 있고, 그 이상도 가능합니다. 입맛이 돋아지셨기를 바랍니다. 이 강력한 도구가 무엇을 할 수 있는지 함께 살펴보겠습니다.

사전 준비 사항

Kiwi를 사용하기 전에 반드시 openSUSE 10 이상이 설치되어 있어야 합니다. 참고로 openSUSE의 설치와 설정에 관해서는 이전에 두 차례에 걸쳐 상세한 단계별 튜토리얼을 발표한 적이 있습니다. SUSE Linux 설치 가이드는 다소 오래된 글로 openSUSE 10.1을 다루며, KDE 데스크톱의 기본 개념과 보안 기능, 각종 설정에 초점을 맞추고 있습니다. openSUSE 11 리뷰 & 튜토리얼은 훨씬 방대하고 완결성 있는 글로, 라이브 CD 사용 경험, 무선 네트워크, Compiz, 멀티미디어 코덱, 추가 저장소 등록, ATI를 포함한 그래픽 카드 드라이버 설치, 게임 설치 등을 폭넓게 다룹니다.

두 튜토리얼을 살펴보시면 openSUSE를 시작하는 데 큰 도움이 될 것입니다. openSUSE 설치를 마쳤다면 이제 Kiwi로 넘어갑시다.

Kiwi 설치하기

가장 먼저 YaST를 통해 Kiwi를 설치해야 합니다. YaST에는 방대한 Kiwi 관련 패키지 목록이 있는데, 저희는 이 모든 패키지가 필요합니다.

Kiwi 이미징 시스템 – 몇 시간 만에 나만의 운영체제 이미지를 만드는 방법

하지만 이것으로 끝이 아닙니다. Product Creator(product-creator)라는 유틸리티도 추가로 설치해야 합니다. 이 유틸리티는 두 개의 모듈로 구성되어 있는데, 하나는 Image Creator, 다른 하나는 Product Creator입니다.

귀여운 키위 열매 로고를 가진 Image Creator는 이름 그대로, Kiwi를 활용해 이미지를 만드는 GUI 마법사입니다. 바로 우리가 필요한 것이죠. Product Creator는 기존 설치 환경을 새로운 설치형 배포판으로 변환해 줍니다. 이것 역시 유용한 도구입니다.

다만 이 글에서는 Image Creator만 다룹니다. Product Creator는 별도의 글에서 자세히 소개하겠습니다. 또한 SUSE Studio라는 강력한 빌드 유틸리티도 있는데, 이 역시 나중에 다룰 예정입니다. Image Creator는 YaST > Miscellaneous 메뉴에서 찾을 수 있습니다.

Kiwi 사용하기

Image Creator를 처음 실행하면 아무 내용이 없는 빈 설정 화면이 나타납니다. 새 구성을 만들려면 Add 버튼을 클릭하세요.

이미지 준비

이제 무엇을 할지 결정해야 합니다. 기존 구성을 불러올 수도 있지만, 처음 시작하는 단계이므로 첫 번째 옵션인 Create from beginning(처음부터 생성)을 선택합니다.

다음으로 Image Type(이미지 유형)을 선택해야 합니다. 이 선택이 최종 결과물을 결정하므로 매우 중요한 단계입니다.

Kiwi 이미징 시스템 – 몇 시간 만에 나만의 운영체제 이미지를 만드는 방법

  • Live ISO Image: 아마도 가장 유연한 옵션입니다. 어느 환경에서든 설치해 사용할 수 있습니다.
  • Xen Image: Xen 가상화 소프트웨어 전용입니다. 참고로 Xen은 Novell이 공식 지원하며 배포판에 기본 포함되어 있고, YaST > Virtualization 메뉴를 통해 접근할 수 있습니다.
  • USB Stick Image: USB 장치에서 사용하기 위한 이미지입니다.
  • Virtual Disk Image: QEMU용 .raw와 VMware용 .vmdk 등 다양한 포맷을 포괄합니다. 출력 결과가 여러 개의 이미지 파일로 구성되므로 용량 요구 사항이 상당하다는 점에 유의해야 합니다.

덧붙이자면, 위 스크린샷의 배경색이 제 사이트 배경색과 우연히 동일합니다. 순전히 행운 혹은 천재적인 우연의 일치죠. SUSE와 제가 같은 색을 쓰게 되다니, 놀라운 일이 아닐 수 없습니다.

용량 문제는 곧 Output directory(출력 디렉터리) 이야기로 이어집니다. 이미지 파일을 저장할 충분한 여유 공간을 확보하세요. 예를 들어 2GB 가상 디스크 이미지를 만들 계획이라면 최종 결과물은 최소 250% 이상 더 필요합니다. 특히 출력 디렉터리가 루트 파티션과 동일한 경우 여유 공간이 부족해지면 시스템 전체가 마비될 수 있으므로 각별히 주의하세요. 기본 출력 위치는 /tmp입니다.

Package Repository(패키지 저장소) 섹션에는 이미지 빌드 과정에서 패키지를 다운로드할 저장소 목록이 들어갑니다. 등록한 저장소가 많을수록 선택할 수 있는 소프트웨어의 폭이 넓어집니다. 다만 저장소가 깨져 있거나 서명이 올바르지 않으면 나중에 문제가 생길 수 있으니 미리 확인해 두세요.

Virtual Disk Image 구성

다음 단계는 이미지 자체를 구성하는 것입니다. 즉, 이미지에 무엇이 포함되고 어떻게 동작할지를 정하는 과정으로, 총 5단계로 진행됩니다.

  1. 버전과 크기 선택: 이미지의 버전과 용량을 지정합니다. 디스크 공간 제약이 있다면 이 단계에서 신중하게 계획해야 합니다.
  2. 패키지 선택: 이미지에 포함할 패키지를 고릅니다.
  3. Description(설명): 이름 그대로 이미지에 대한 설명을 입력하는 단계로, 버전 관리에 유용합니다.
  4. 유효 사용자 목록: 기본적으로 암호 없는 root와 일반 linux 사용자가 등록되어 있습니다. 필요에 따라 수정하거나 사용자를 추가·삭제할 수 있습니다.
  5. 이미지 빌드 스크립트: 숙련된 사용자라면 사용자 정의 네트워크나 서비스 구성 스크립트, 정리(cleanup) 스크립트 등을 자유롭게 추가할 수 있습니다. 잘 모르겠다면 기본값 그대로 두는 것이 좋습니다.

마지막 단계에서는 시스템 구성이 담긴 디렉터리를 선택합니다. 역시 확실하지 않다면 기본 옵션을 유지하세요. 이 섹션은 필요에 따라 추가 빌드 스크립트를 포함할 수 있는 자리지만, 이미지를 만들고 정상 동작시키는 데 반드시 필요한 요소는 아닙니다.

모든 단계를 마쳤으면 Finish를 클릭합니다. 선택 사항을 확인하는 창이 나타나고, 이후 빌드 프로세스가 시작됩니다. 이미지 크기와 네트워크 속도에 따라 시간이 걸릴 수 있는데, 필자의 경우 약 3시간 만에 이미지가 완성되었습니다.

이미지 테스트

이제 기다리고 기다리던 순간, 전체 결과물을 테스트할 때입니다. 몇 시간에 걸친 작업 끝이라 과연 제대로 동작할지 궁금해지기 마련입니다. 직접 확인해 보겠습니다.

먼저 결과물 살펴보기

참고로 아래 스크린샷에서 이미지 파일 경로가 /tmp가 아닌 이유는, 테스트 성능을 높이기 위해 이미지들을 다른 파티션(/mnt)으로 옮겼기 때문입니다. 이는 가상화 제품을 다룰 때 늘 권장하는 팁 중 하나입니다.

Kiwi 이미징 시스템 – 몇 시간 만에 나만의 운영체제 이미지를 만드는 방법

디렉터리에는 꽤 많은 파일이 들어 있습니다. 2GB가 넘는 .raw 이미지와 .vmdk 이미지, 그리고 VMX 부팅용 vmlinuz와 initrd 파일 등이 포함되어 있죠. 말씀드렸듯이 최종 결과물은 의도했던 용량보다 훨씬 커집니다.

우리가 관심 있는 파일은 .vmdk입니다. 물론 .raw 파일을 QEMU에서 바로 사용하거나, 필요하다면 아마존 EC2용 AMI 포맷으로 변환할 수도 있습니다.

가상 머신 생성

첫 번째 단계는 VMware Server 등에서 가상 머신을 새로 만드는 것입니다.

가상 머신 시작

자, 가상 머신이 준비되었습니다:

Kiwi 이미징 시스템 – 몇 시간 만에 나만의 운영체제 이미지를 만드는 방법

부팅이 시작됩니다:

Kiwi 이미징 시스템 – 몇 시간 만에 나만의 운영체제 이미지를 만드는 방법

Kiwi 이미징 시스템 – 몇 시간 만에 나만의 운영체제 이미지를 만드는 방법

그리고 정상적으로 실행됩니다:

Kiwi 이미징 시스템 – 몇 시간 만에 나만의 운영체제 이미지를 만드는 방법

훌륭합니다! 우리의 작업은 대성공이었습니다.

더 알아두면 좋은 것들

Kiwi는 매우 유연한 도구로, XML 구성 파일을 기반으로 동작합니다. 이는 이미지 생성 절차 전체를 스크립트로 자동화할 수 있다는 뜻이며, 매번 마법사에 의존할 필요가 없습니다. 물론 명령줄 도구는 세밀한 제어와 높은 수준의 자동화가 필요한 고급 사용자에게 적합합니다.

공식 문서에는 지금까지 다룬 일반적인 이미지 외에도 PXE 씬 클라이언트 설치, OEM 사전 설치(preload) 시스템 등 다양한 형태의 이미지를 만드는 방법이 설명되어 있으며, 무엇보다 예제까지 포함되어 있습니다. 이 내용은 별도의 튜토리얼에서 더 자세히 다루겠습니다.

결론

이 글에서 우리는 Kiwi와 Build Service의 잠재력 극히 일부만 맛보았습니다. 그럼에도 Kiwi 패키지가 지닌 단순함, 아름다움, 강력함, 유연함은 부인할 수 없습니다.

Kiwi를 활용하면 다양한 형태의 맞춤형 이미지를 만들고, 여러 시나리오에서 테스트·배포할 수 있습니다. 이런 작업에 통상 수반되는 지루하고 힘든 명령줄 작업 없이 말이죠. 물론 XML 구성 파일을 통한 자동화도 지원하므로 필요에 따라 선택적으로 활용할 수 있습니다.

무엇보다 Kiwi는 친절하고 이해하기 쉬운 메뉴로 이 모든 것을 처리합니다. 시스템 전문가가 아니어도 Image Creator를 충분히 다룰 수 있으며, Xen, VMware Server, 심지어 아마존 클라우드 원격 배포까지 자유롭게 이미지를 구워낼 수 있습니다. 그 놀라운 잠재력은 그저 탄복할 따름입니다.

openSUSE를 주력 데스크톱 배포판으로 쓸 생각이 없으셨다면, 다시 한번 생각해 보시길 권합니다. 업무 영역이 가상화로 확장되는 순간, Kiwi는 빠르고 대규모인 이미지 배포와 테스트를 위한 가장 완벽한 비즈니스급 플랫폼이 되어줄 것입니다. 후속 튜토리얼에서는 Product Creator와 SUSE Studio를 다룰 예정이니 기대해 주세요.

그럼, 즐거운 리눅스 되세요!