|
#!/bin/bash |
|
|
|
|
|
create_disk_image() { |
|
qemu-img create -f qcow2 /app/ubuntu_vm.qcow2 15G |
|
echo "Virtual disk image created: /app/ubuntu_vm.qcow2 (15GB)" |
|
} |
|
|
|
|
|
download_ubuntu_iso() { |
|
wget -O /app/ubuntu-20.04-live-server-amd64.iso https://old-releases.ubuntu.com/releases/20.04.2/ubuntu-20.04.2-live-server-amd64.iso |
|
echo "Ubuntu ISO downloaded: /app/ubuntu-20.04-live-server-amd64.iso" |
|
} |
|
|
|
|
|
install_ubuntu_vm() { |
|
virt-install \ |
|
--name ubuntu_vm \ |
|
--ram 2048 \ |
|
--disk path=/app/ubuntu_vm.qcow2,format=qcow2 \ |
|
--vcpus 2 \ |
|
--os-type linux \ |
|
--os-variant ubuntu20.04 \ |
|
--network bridge=virbr0,model=virtio \ |
|
--graphics none \ |
|
--console pty,target_type=serial \ |
|
--location 'http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/' \ |
|
--extra-args 'console=ttyS0,115200n8 serial' |
|
echo "Ubuntu installation initiated for VM: ubuntu_vm" |
|
} |
|
|
|
|
|
manage_vm() { |
|
case $1 in |
|
start) |
|
virsh start ubuntu_vm |
|
echo "VM started: ubuntu_vm" |
|
;; |
|
stop) |
|
virsh shutdown ubuntu_vm |
|
echo "VM stopped: ubuntu_vm" |
|
;; |
|
console) |
|
virsh console ubuntu_vm |
|
;; |
|
*) |
|
echo "Usage: $0 {start|stop|console}" |
|
;; |
|
esac |
|
} |
|
|
|
|
|
case $1 in |
|
create-disk) |
|
create_disk_image |
|
;; |
|
download-iso) |
|
download_ubuntu_iso |
|
;; |
|
install-vm) |
|
install_ubuntu_vm |
|
;; |
|
manage-vm) |
|
manage_vm $2 |
|
;; |
|
*) |
|
echo "Usage: $0 {create-disk|download-iso|install-vm|manage-vm {start|stop|console}}" |
|
;; |
|
esac |
|
|
|
|
|
|