본문으로 바로가기

클라우드용 커스텀 이미지 만들기

category OpenStack 2021. 5. 14. 09:52
반응형

과정 요약

1. QEMU + KVM 에뮬레이터를 실행할 수 있는 환경(나는 컴퓨트 노드에서 생성함)에서 QEMU +KVM을 이용해서 가상머신(qcow2타입의 디스크 이미지를 가진)을 생성

*qcow2 : 가상의 하드디스크(이미지) 파일 (vmdk 같은 거)

2. 가상머신에 운영체제 설치 및 cpid, cloud-init, cloud-utils-growpart

3. 부팅시 DHCP로 네트워크 설정이 되도록 설정

4. 추가적인 설정하기 (zeroconf 설정, 부팅 환경설정)

5. 확인(오픈스택에서 이미지 등록하고 가상머신 생성, QEMU + KVM로 수동으로 가상머신 생성)

 

가상머신 이미지 형식

 

aki  아마존 커널 이미지
ami 아마존 머신 이미지
ari  아마존 RAM 디스크 이미지
iso 광학 디스크나 CD-ROM의 데이터 콘텐츠를 지원하는 아카이브
포맷
qcow2 QEMU 에뮬레이터가 지원하는 포맷
raw 구조화되지 않은 디스크 포맷
vdi VirtualBox  모니터와 QEMU 에뮬레이터가 지원하는 포맷
vmdk 일반적인 디스크 포맷으로 여러 가상 머신 노미터가 지원, VMware

 

(1) virt 설치

dnf module install virt

dnf install virt-install virt-viewer libguestfs-tools

 

(2) 기본 이미지 준비

CentOS http://cloud.centos.org/centos/7/images/

CirrOS http://download.cirros-cloud.net/

우분투 http://cloud-images.ubuntu.com/

 

CentOS-7-x86_64-GenericCloud.qcow2  # 컴퓨트 노드에다가 다운 받았다. (다른 컴퓨터에서 해도 상관은 없다)

(3) KVM 가상 네트워크 생성 및 확인

virsh net-start default

virsh net-list

(4) KVM 가상머신 생성 // 명령어로 

virt-install --name [가상머신 이름] --ram 1024 \ --disk [qcow2 파일 이름 포함한 절대 경로],format=qcow2 \ --network network=default \ --graphics vnc,listen=0.0.0.0 --noautoconsole \ --os-type=linux --os-variant=

[사용가능한 OS 버전] \ --boot hd

virsh list 하면 내가 설치한 가상머신목록이 뜬다

클라우드용 커스텀 이미지 관리 

(1) virt-manager 설치

dnf -y install virt-manager

(2) 본체 윈도우에서 putty x11 설정 (Xming Server가 다운돼 있어야함)

리눅스에서 dnf -y install xauth 다운로드 본체 putty x11 실행 -> SSH -> X11 -> Enable X11 Forwarding 체크 -> X display location : localhost:0 설정 후 접속 리눅스에서 virt-manager 입력

이렇게 vmware를 사용하는 것 처럼 내가 생성한 가상머신이 보인다.

로그인을 ssh-key를 추가해줘야 한다.

ssh-keygen 으로 키파일 생성.

 

dnf -y install libguestfs-tools

virt-sysprep -a [이미지파일] --ssh-inject [사용자이름]:file:[공개키파일위치]

virt-sysprep -a /virt/CentOS-7-x86_64-GenericCloud.qcow2 --ssh-inject root:file:/root/.ssh/id_rsa.pub

 

virsh net-dhcp-leases default  #우리가 설정한 default란 네트워크에서 dhcp 타입으로 접속

 

ssh [사용자]@[IP] -i [개인키파일 위치]

 

클라우드용 이미지 만들기(vmware로 따지면 vmdk파일을 만드는 것)

(1) qcow2 이미지(디스크) 파일 생성

qemu-img create -f qcow2 /virt/centos7.qcow2 20G     //20G 가상 이미지 디스크 생성( 가상머신이 들어갈 곳)

-빈 하드디스크를 만들어 준 것과 같다.(그다음은 운영체제를 설치해줘야한다) 

(2) ISO로 가상머신 생성

- 생성한 하드디스크에 가상머신을 생성(가상으로 운영체제 설치, 사양 정의)

virt-install --name centos7 --ram 1024 \    // RAM 1G설정

--disk /virt/centos7.qcow2,format=qcow2 \

--network network=default \     // 생성한 네트워크 default 설정

--graphics vnc,listen=0.0.0.0 --noautoconsole \   //vnc : 화면을 그래픽 환경으로 볼 수 있게.

--os-type=linux --os-variant=centos7.0 \

--location=/virt/CentOS-7-x86_64-Minimal-2009.iso    //이미지 파일 경로를 잘 설정 해줘야 한다.

 

 

 

(3) 가상머신에서 설치 진행

- putty x11로 실행해서 설치 진행(vm ware로 접속해서 OS 설치하는 것과 같은 과정)

ㅔㅕ

Xmin 화면으로 보니 잘 설치가 된 것을 볼 수 있다.

 

(4) 클라우드용 이미지로 만들기 작업

[1] acpid 설치 및 자동 실행 설정(하이퍼바이저가 가상머신을 재부팅 또는 종료할 수 있게 해주는 프로그램 플러그인)

 

yum install acpid

systemctl start acpid

systemctl enable acpid

 

[2] cloud-init 설치 및 설정 (ssh 공개키를 가상머신에 넣도록 도와주는 프로그램)

yum install cloud-init

설정파일 /etc/cloud/cloud.cfg

 

[3] cloud-utils-growpart (하이퍼바이저가 가상머신의 하드디스크 용량을 늘렸다 줄였다 할 수 있게 해주는 프로그램) yum install cloud-utils-growpart

반응형

'OpenStack' 카테고리의 다른 글

오픈스택 잘 안 될시 문제 사항  (0) 2021.05.12
OpenStack 설치(Packstack)  (0) 2021.05.10