train / manage.sh
ar08's picture
Update manage.sh
e545035 verified
#!/bin/bash
# Function to create a virtual disk image
create_disk_image() {
qemu-img create -f qcow2 /app/ubuntu_vm.qcow2 15G
echo "Virtual disk image created: /app/ubuntu_vm.qcow2 (15GB)"
}
# Function to download Ubuntu ISO
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"
}
# Function to install Ubuntu on VM
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"
}
# Function to manage VM state
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
}
# Main menu
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