[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
howtos:emulators:helper_script_for_managing_qemu_virtual_machines [2016/09/01 07:19 (UTC)] – [Networking] louigi600 | howtos:emulators:helper_script_for_managing_qemu_virtual_machines [2016/09/04 19:47 (UTC)] – [Preface] louigi600 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Preface ====== | ====== Preface ====== | ||
- | Qemu is a popular and powerful open-source emulator often used for running KVM virtual machines. In fact qemu supports emulating so many thins that it can be quite challenging, | + | Qemu is a popular and powerful open-source emulator often used for running KVM Virtual Machines (VMs). In fact qemu supports emulating so many things |
qemu-system-arm -name armedslack -M versatilepb -m 256 -k en-us -vnc :5,password -usb -kernel / | qemu-system-arm -name armedslack -M versatilepb -m 256 -k en-us -vnc :5,password -usb -kernel / | ||
- | Ok everyone might want console redirect on vnc and monitor redirect via telnet but non the less that's still a relatively small subset of the options supported by qemu-system-arm and only has one disk one cdrom and one Network Interface Controller (NIC) so things can be much worse then this. | + | Not everyone might want console redirect on vnc and monitor redirect via telnet but non the less that's still a relatively small subset of the options supported by qemu-system-arm and only has one disk one cdrom and one Network Interface Controller (NIC) so things can be much worse then this. |
- | Is is common | + | Is is common, for people running qemu VMs, to use some sort of software |
- | Over the years I've radically changed the helper script form having text configuration files for each VM to a centarl VM configuration database. I'd like to share my experience in doing so without presumptuously declaring that I do this any better then anyone else, letting you decide what's good or bad for your needs. It's likely that someone else has done this and a lot better then me but nevertheless I's still like to hare with you the route I took. | + | Over the years I've radically changed the helper script form having text configuration files for each VM to a centarl VM configuration database. I'd like to share my experience in doing so without presumptuously declaring that I do this any better then anyone else, letting you decide what's good or bad for your needs. It's likely that someone else has done this and a lot better then me but nevertheless I'd still like to hare with you the route I took. |
====== Problems ====== | ====== Problems ====== | ||
Line 383: | Line 383: | ||
esac | esac | ||
+ | ===== Using Qemu from Unprivileged Users ===== | ||
+ | Using root for doing your everyday tasks is commonly discouraged so let's see how we can work around using qemu from unprivileged users. | ||
+ | Some say that it's sufficient to give sudo execution on / | ||
+ | |||
+ | User_Alias QEMUERS = al, john, jack | ||
+ | | ||
+ | Cmnd_Alias QEMUCMD = / | ||
+ | | ||
+ | QEMUERS ALL=(ALL) NOPASSWD: QEMU | ||
+ | |||
+ | This would be sufficient to run the VMs as any of the unprivileged users in QEMUERS user alias (al, john, jack) but the management script would need to run sudo qemu-system-* .... this is easy to obtain: | ||
+ | |||
+ | [ $(/ | ||
+ | eval $(echo "$CMD &" | ||
+ | |||
+ | Alternatively you could give privileges to execute the management script as root. | ||
===== Examples ===== | ===== Examples ===== | ||
Here are examples of the dialogs that user would see wile creating, starting, stopping and deleting a VM. | Here are examples of the dialogs that user would see wile creating, starting, stopping and deleting a VM. | ||
Line 601: | Line 617: | ||
====== Sources ====== | ====== Sources ====== | ||
+ | I've a blog entry on LQ where I talk a little more extensively on minimizing the code in bash scripts. | ||
+ | [[http:// | ||
<!-- If you are copying information from another source, then specify that source --> | <!-- If you are copying information from another source, then specify that source --> |