| #!/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 |
|
|
|
|
|
|