Membuat VM dengan Cloud image
Dengan membuat VM menggunakan cloud image, kamu bisa membuat vm dengan jumlah banyak secara mudah. Selain itu, cloud image juga bisa kamu masukkan kustom pre built seperti ssh keys, user password dan lainnya. Kita akan buat vm dengan spek OS CentOS 7 RAM 1gb dan 20 disk space dengan 1 vCPU. Yuk simak artikelnya.
Download CENTOS 7 CLOUD IMAGE
# cd /var/lib/libvirt/boot
# wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2
Buat folder yang dibutuhkan
# D=/var/lib/libvirt/images
# VM=centos7-vm1 ## vm name ##
# mkdir -vp $D/$VM
mkdir: created directory '/var/lib/libvirt/images/centos7-vm1'
Buat file Meta-data
# cd $D/$VM
# vi meta-data
tambahkan berikut ini
instance-id: centos7-vm1 local-hostname: centos7-vm1
Buat USER-DATA file
I am going to login into VM using ssh keys. So make sure you have ssh-keys in place:
Kita akan login ke vm dengan ssh key. Sekarang kita buat ssh key nya
# ssh-keygen -t ed25519 -C "VM Login ssh key"
Edit user-data
# cd $D/$VM
# vi user-data
Tambahkan isi berikut (replace bagian hostname, users, ssh-authorized-keys mengikuti setup kamu)
#cloud-config # Hostname management preserve_hostname: False hostname: centos7-vm1 fqdn: centos7-vm1.nixcraft.com # Users users: - default - name: vivek groups: ['wheel'] shell: /bin/bash sudo: ALL=(ALL) NOPASSWD:ALL ssh-authorized-keys: - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIMP3MOF2ot8MOdNXCpHem0e2Wemg4nNmL2Tio4Ik1JY VM Login ssh key # Configure where output will go output: all: ">> /var/log/cloud-init.log" # configure interaction with ssh server ssh_genkeytypes: ['ed25519', 'rsa'] # Install my public ssh key to the first user-defined user configured # in cloud.cfg in the template (which is centos for CentOS cloud images) ssh_authorized_keys: - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIMP3MOF2ot8MOdNXCpHem0e2Wemg4nNmL2Tio4Ik1JY VM Login ssh key # set timezone for VM timezone: Asia/Kolkata # Remove cloud-init runcmd: - systemctl stop network && systemctl start network - yum -y remove cloud-init
Copy Cloud Image
# cd $D/$VM
# cp /var/lib/libvirt/boot/CentOS-7-x86_64-GenericCloud.qcow2 $VM.qcow2
Buat 20GB image disk
# cd $D/$VM
# export LIBGUESTFS_BACKEND=direct
# qemu-img create -f qcow2 -o preallocation=metadata $VM.new.image 20G
# virt-resize --quiet --expand /dev/sda1 $VM.qcow2 $VM.new.image Overwrite it resized image: # cd $D/$VM
# mv $VM.new.image $VM.qcow2
Buat Cloud-Init ISO
# mkisofs -o $VM-cidata.iso -V cidata -J -r user-data meta-data
Membuat POOL
# virsh pool-create-as --name $VM --type dir --target $D/$VM
Pool centos7-vm1 created
Install VM Centos 7
# cd $D/$VM
# virt-install --import --name $VM \
--memory 1024 --vcpus 1 --cpu host \
--disk $VM.qcow2,format=qcow2,bus=virtio \
--disk $VM-cidata.iso,device=cdrom \
--network bridge=virbr0,model=virtio \
--os-type=linux \
--os-variant=centos7.0 \
--graphics spice \
--noautoconsole
Mengetahui IP VM tersebut
# virsh net-dhcp-leases default
LOG IN TO YOUR VM
# ssh vivek@192.168.122.85
Selesai!
Mohon bagikan ke teman kampus, teman sekolah, kerabat kerja, partner in crime dan lainnya agar ilmu ini lebih bermanfaat lagi.
Silahkan tinggalkan komentar anda dibawah ini.
5 thoughts on “Cara Membuat VM Dengan Cloud Init”