Membuat VM di Virtual Box dengan Cloud Image


Bagus Koko Wibawanto

19 Maret 2024

Membuat VM dengan cloud image untuk sekarang ini bisa membantu dalam hal efisiensi, karena dengan menggunakan cloud image, kita tidak perlu berhadapan dengan proses instalasi distro Linux pada umumnya. Jadi vm tersebut bisa langsung booting dan kita bisa melakukan konfigurasi vm tersebut secara deklaratif. Pada artikel ini kita akan mencoba membuat VM di Virtual Box dengan menggunakan cloud image. Catatan pada artikel ini adalah penulis menggunakan os openSUSE Leap 15.4 dan untuk pembaca bisa menggunakan distro lain.


Kita akan menggunakan os ubuntu versi 20.04 (Focal). Akses web Official Website Cloud Image Ubuntu untuk mendownload cloud image. Karena di official ubuntu tidak ada image vdi, jadinya kita pakai yang versi ova dan nantinya akan kita convert ke vdi.


$ wget https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.ova
					

Ekstrak file ova tersebut dengan menggunakan command di bawah ini.


$ tar -xf focal-server-cloudimg-amd64.ova
					

Hasil ekstrak seperti gambar di bawah ini.


Kita akan melakukan clone ubuntu-focal-20.04-cloudimg.vmdk menjadi .vdi dengan menggunakan command di bawah ini.


$ sudo VBoxManage clonehd ubuntu-focal-20.04-cloudimg.vmdk ubuntu-server.vdi --format vdi
					

Biasanya untuk ukuran disk root cloud image hanya berkisar 2 GB. Jadi kita akan melakukan resize untuk disknya agar nantinya partisi root memiliki ukuran sebesar 20GB.


$ sudo VBoxManage modifymedium disk ubuntu-server.vdi --resize 20480 
					

Note : --resize dalam MB.


Verifikasi apakah ukuran disk rootnya sudah 20GB.


$ sudo VBoxManage showhdinfo ubuntu-server.vdi 
UUID:           ad244cfd-d51c-41d5-8dae-d17d9399092a
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/kokow/Development/virtualbox/ubuntu-server.vdi
Storage format: vdi
Format variant: dynamic default
Capacity:       20480 MBytes
Size on disk:   1554 MBytes
Encryption:     disabled
Property:       AllocationBlockSize=1048576
					

Karena owner dari file ubuntu-server.vdi masih root, maka ubah terlebih dahulu agar menjadi user dan group sekarang ini.


$ sudo chown $USERS:$GROUPS ubuntu-server.vdi
					


Buat cd-rom untuk cloud init, jadi semua konfigurasi vm seperti user, password, ssh_authorized keys, dan sebagainya dilakukan dengan membuat cd-rom cloud init.


Buat file “user-data” dan “meta-data” dengan konfigurasi seperti di bawah ini.


$ vim user-data

#cloud-config
users:
  - name: student
    ssh-authorized-keys:
      - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCyKCAsAHtW4LZD9QW3Gs9x9pHtxFTVFkGEiw1HbXJANCAjOsEK1aqTRUJ/55xq0NYPBFGpFpPdKoztrXerOTWAZznSx8xRgJBrBozCPlQ2GTJGH1OHoDL7+0yI4VsRvenV6+fIwLwOU9N2+KC+MG4mwHiv/55JUMnQ+KWy+m/SdR4qPb13t2K+TtRqZMzKS9XimNCJMlP9Nhowhjq1qfyCN01Ck4Ux5O3T5gQxUDkrDcdpVBZCtavF530N6+bYJdskiYFThU/p1yo4cSbfFgwLukqOlWg7KsqS90LJqUdZDe4tk+eBx2ba+d5nRY8ivZMg3XCLrtSfWJbyKI9huN1/MmrFSk6Wu4lvlTDoEFoXpVtqOks5V5vnezjaZGeG+VJ6jiq5VhxyyJvk+vojI51WN2HlPbY7g1Rsld9xWo1BowjytDoWlW3/CFnzFjz15RAC7MqSLb/S89pfvNF2lDz/rgfEuTSdMD6LvYdd/0bG0X8ZFlkHvbXaJxwesBrIrs8= kokow@master
    sudo: ['ALL=(ALL) NOPASSWD:ALL']
    groups: sudo
    shell: /bin/bash
runcmd:
  - echo "AllowUsers student" >> /etc/ssh/sshd_config
  - restart ssh

chpasswd:
  list: |
    student:student
    root:student
  expire: False

					

Note : Untuk ssh pubkey diisi dengan laptop/pc masing masing.


$ vim meta-data

local-hostname: ubuntu-server
					

Buat cd-rom cloud init dengan menggunakan tool genisoimage.


$ genisoimage -output cidata.iso -V cidata -r -J user-data meta-data
					

Masuk ke aplikasi virtual box dan buat vmnya. Untuk iso arahkan ke cidata.iso yang telah kita buat sebelumnya.

Pilih file disk ubuntu-server.vdi sebelumnya yang sudah kita resize.

Untuk network, penulis menggunakan host only adapter. Berikut detail subnet networknya.

Masuk ke settingan vmnya dan pastikan iso dan vdi sudah mengarah ke file yang benar.

Dan untuk network pilih yang host only adapter.

Start VM, dan tunggu sampai proses booting selesai agar konfigurasi cloud init benar benar terpasang. Jika sudah selesai booting, coba test login dengan menggunakan user dan password yang ada pada konfigurasi user-data. Di sini penulis menggunakan user “student” dan passwordnya adalah “student”.

Untuk disk ukurannya adalah 20 GB, jadi resize yang kita lakukan sebelumnya berhasil.

Kita coba cek ipnya dan kita akan gunakan untuk ssh.

Kita sudah berhasil membuat vm dengan menggunakan cloud image di VirtualBox, dan mungkin ini akan efisien untuk kebutuhan ngelab jika memang kita terbiasa menggunakan VirtualBox dari pada menggunakan cd-rom iso OS yang nantinya harus melewati proses install yang panjang.