[[wiki:experiences/igraltist#kvm_on_rsbac|Back to igraltist's experiences/KVM on RSBAC]]\\
====== Howto setup a kvm user on gentoo ======
===== Software packages =====
The listed software packages are required:
*iproute2 (getnoo => sys-apps/iproute2,)
*brctl (gentoo => net-misc/bridge-utils,)
*tunctl (gentoo => sys-apps/usermode-utilities,)
*tightvnc (gentoo => net-misc/tightvnc,)
Other packages should be installed on default installation.
===== Create an user kvm =====
== Using `RSBAC` User Managmant (UM) ==
* this is usefull because qemu-kvm has a option runas
* than not sudo is needed
* as security user add a group
$rsbac_group add kvm
* and an user named kvm
$rsbac_user add -g kvm -c 'User to run kvm-guests' -s /bin/sh kvm
== Using linux pam ==
* first create an user kvm for runas
#adduser -U -m -c "kvm user" kvm
== Fix for LVM ==
Fixme: Wrapper for kvm-disk-user
Only if you using LVM as guest harddrives.
* add kvm-user to the disk-group
* when using UM
$rsbac_usermod -G disk kvm
* when PAM
#gpasswd -a kvm disk
----
* do a search:
grep block.*disk.*MODE /etc/udev/rules.d/*
* if it empty create a file
touch /etc/udev/rules.d/70-kvm-rules
* now change insert the follow udev rule, because the diskgroup need read and write access on the device
SUBSYSTEM=="block", GROUP="disk", MODE="0660"
===== Udev Modification =====
Now modify the udev 70-kvm.rules, that while booting all will be done automatic.
Note: In Udev rules there was a changing.
Now the parameter NAME is not valid anymore.
As example i have this file now under /etc/udev/rules.d
* insert the follow lines into 70-kvm.rules
KERNEL=="tun", MODE="0660", GROUP="kvm", OPTIONS+="ignore_remove"
KERNEL=="kvm", MODE="0660", GROUP="kvm"
===== Create directories =====
* create a directory to store the pidfiles and socket for kvm monitor
#mkdir /var/run/kvm
#chown kvm:kvm /var/run/kvm/
#chmod 750 /var/run/kvm
\\
**When using files as guest harddrives.**
* when kvm user is starting the process, he must able to enter the directory and must have to write access to the image.
For example:
#mkdir /var/lib/kvm
#chmod 770 /var/lib/kvm
#chgrp kvm /var/lib/kvm
* create a test file
su - kvm -c "qemu-img create /var/lib/kvm/test.img 1MB"
Formatting '/var/lib/kvm/tester.img', fmt=raw size=1048576
* check it
ls -la /var/lib/kvm/
insgesamt 8
drwxrwx--- 2 root kvm 4096 10. Nov 15:27 .
drwxr-xr-x 22 root root 4096 10. Nov 15:25 ..
-rw-r--r-- 1 kvm kvm 1048576 10. Nov 15:27 test.img
===== Network =====
This site will describe on some example howto setup the [[wiki:experiences/igraltist/kvm-network|Network]].
===== kvm-admin =====
I use my own scripts to manage the kvm guest's.
It can be found here http://hg.kasten-edv.de/kvm-tools/
===== Example configuration =====
All guest configuration files located in '/etc/kvm/domains/'.\\
* example for a guest which on a headless machine, so vnc is using for installation
############################
# sample option for a disk #
############################
drive = file=/dev/mapper/VG-example,if=virtio,index=0,media=disk,boot=off,cache=none
# sample option for a cdrom, can also be a second disk
drive = file=/path/to/my_cd_img.iso,if=virtio,index=1,media=cdrom,boot=on
########################
# settings for network #
########################
net = nic
# use tap device for briding
net = tap,bridge=br0
############################################################################
# use monitor option other the default unix socket or override the default #
############################################################################
# example for overridding the default
# monitor = unix,path_to_your_own_socketfile,server,nowait
# use tcp socket, every guest have to use a different port
monitor = tcp,localhost,4444,server,nowait
===== Test example config =====
Befor start check the [[wiki:experiences/igraltist/kvm-network|Network]].
kvm-admin example show
This string would executed:
/usr/bin/kvm -uuid 0bcd5138-41bf-a5c0-0627-4e0b65d3871f -monitor tcp,localhost,4444,server,nowait -rtc clock=host,base=utc -runas kvm -M pc -drive file=/dev/mapper/VG-example,if=virtio,index=0,media=disk,boot=off,cache=none -drive file=/path/to/my_cd_img.iso,if=virtio,index=1,media=cdrom,boot=on -daemonize -net nic -net tap,ifname=example,script=/etc/kvm/scripts/kvm-ifup,downscript=/etc/kvm/scripts/kvm-ifdown -cpu core2duo -pidfile /var/run/kvm/example.pid -name example,process=example
[[wiki:experiences/igraltist/kvm#|Top]]