Engineering/etc.

Cloud-init을 이용하여 간단한 VM 생성해보기

mutjang2 2026. 3. 25. 18:10

 

VMWare ESXi 호스트에 cloud-init을 이용하여 VM 생성하기.


 

1. OS 이미지 다운로드 - 시험대상: Rocky Linux 8.10

 

 - Generic cloud 이미지 다운로드

https://download.rockylinux.org/pub/rocky/8/images/x86_64/

 

Rocky Linux Repository

 

download.rockylinux.org


2. Download 한 이미지를 vmdk 파일로 변환

 

- VMWare와의 호환성을 위해서 vmdk 파일로 변환함

$ qemu-img convert -f qcow2 -O vmdk Rocky-8-GenericCloud.latest.x86_64.qcow2 rocky-8.10-cloud.vmdk

 


3. Cloud-init 데이터 소스 파일 작성

 

 필수 구성요소: user-data, meta-data

 - user-data: 사용자 계정 등의 OS 환경 및 부팅 후 초기 설정 정보를 포함

 - meta-data: 인스턴스(VM)의 세부정보를 포함

 

  • cloud-init root 디렉토리 생성
$ mkdir cloud-init-pr

 

  • meta-data 생성
$ vi meta-data
instance-id: ci-inst-001
local-hostname: ci-host

 

  • user-data 생성

 - 콘솔 접속할 수 있을정도로만 간단히.

$ vi user-data

#cloud-config
ssh_pwauth: true

users:
  - name: test
    groups: [wheel, sudo]
    shell: /bin/bash
    sudo: ALL=(ALL) NOPASSWD:ALL
    lock_passwd: false
    ssh_authorized_keys:
    -  <ssh-rsa AAAAB3NzaC1yc2.....>

runcmd:
  - id si || useradd -m -G wheel -s /bin/bash si
  - echo "test:test" | chpasswd
  - sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config
  - systemctl restart sshd

 


 

4. cloud-init 이미지 생성

$ genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
$ ll
total 388
-rw-r--r-- 1 root root     54 Mar 25 15:23 meta-data
-rw-r--r-- 1 root root 376832 Mar 25 15:23 seed.iso
-rw-r--r-- 1 root root   1061 Mar 25 15:34 user-data

 

 

 

이렇게 만든 vmdk 와 iso 파일을 ESXi datastore에 업로드 하여 VM을 생성할 수 있다.