blob: 54ee0d742ad2b7e7ae0a27eedefb1be343639b40 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
# Copyright (c) 2008, 2009 - OpenSLX GmbH
#
# This program/file is free software distributed under the GPL version 2.
# See http://openslx.org/COPYING
#
# If you have any feedback please consult http://openslx.org/feedback and
# send your feedback to feedback@openslx.org
#
# General information about OpenSLX can be found at http://openslx.org
#
# Script is included from init via the "." load function - thus it has all
# variables and functions available
write_udhcpd_conf ()
{
local cfgfile=$1
echo "
# udhcpd configuration file written by $0 during OpenSLX stage3 configuration
# The start and end of the IP lease block
start 192.168.101.20
end 192.168.101.100
# The interface that udhcpd will use
interface NWIF
# How long an offered address is reserved (leased) in seconds
offer_time 6000
# The location of the leases file
lease_file /var/lib/misc/udhcpd.leases
# The location of the pid file
pidfile /var/run/udhcpd.pid
opt dns $domain_name_servers
option subnet 255.255.255.0
opt router 192.168.10.2
opt wins 192.168.10.10
option domain $domain_name
# Currently supported options, for more info, see options.c
#subnet
#timezone
#router
#timesvr
#namesvr
#dns
#logsvr
#cookiesvr
#lprsvr
#bootsize
#domain
#swapsvr
#rootpath
#ipttl
#mtu
#broadcast
#wins
#lease
#ntpsrv
#tftp
#bootfile
" >$file
}
# check if the configuration file is available
if [ -e /initramfs/plugin-conf/qemukvm.conf ]; then
# check for the virtualization CPU features
if grep -q "svm" /proc/cpuinfo && modprobe ${MODPRV} kvm_amd ; then
[ $DEBUGLEVEL -gt 0 ] && echo " * Loaded kvm_amd module"
elif grep -q "vmx" /proc/cpuinfo && modprobe ${MODPRV} kvm_intel ; then
[ $DEBUGLEVEL -gt 0 ] && echo " * Loaded kvm_intel module"
elif modprobe ${MODPRV} kqemu ; then
[ $DEBUGLEVEL -gt 0 ] && \
error " * Successfully loaded the kqemu module, but loading of kvm_amd \
or kvm_intel\n failed, because no virtualization extenstion found in this \
CPU. Please\n enable the extension within your machines BIOS or get another \
CPU." nonfatal
else
error " * All module loading failed including the kqemu module, which \
was either\n not found or couldn't be loaded for other reasons. Thus using \
qemu(-kvm)\n makes not much sense."
exit 1
fi
# load needed variables
. /initramfs/plugin-conf/qemukvm.conf
# Test if this plugin is activated... more or less useless with the
# new plugin system
if [ $qemukvm_active -ne 0 ]; then
[ $DEBUGLEVEL -gt 0 ] && echo "executing the 'qemukvm' os-plugin ...";
# load general configuration
. /initramfs/machine-setup
# get source of qemukvm image server (get type, server and path)
if strinstr "/" "${qemukvm_imagesrc}" ; then
qkimgprot=$(uri_token ${qemukvm_imagesrc} prot)
qkimgserv=$(uri_token ${qemukvm_imagesrc} server)
qkimgpath="$(uri_token ${qemukvm_imagesrc} path)"
fi
if [ -n "${qkimgserv}" ] ; then
# directory where qemu images are expected in
mnttarget=/mnt/var/lib/virt/qemukvm
# mount the qemukvm image source readonly (ro)
fsmount ${qkimgprot} ${qkimgserv} ${qkimgpath} ${mnttarget} ro
else
[ $DEBUGLEVEL -gt 1 ] && error " * Incomplete information in variable \
${qemukvm_imagesrc}." nonfatal
fi
# copy version depending files - the vmchooser expects for every virtua-
# lization plugin a file named after it (here run-qemukvm.include)
testmkd /mnt/etc/opt/openslx
cp /mnt/opt/openslx/plugin-repo/qemukvm/run-virt.include \
/mnt/etc/opt/openslx/run-qemukvm.include
# create a template udhcpd configuration file
write_udhcpd_conf /mnt/etc/opt/openslx/udhcpd.qemukvm
# for the busybox dhcp server
testmkd /mnt/var/lib/misc
touch /mnt/var/lib/misc/udhcpd.leases
# copy the /etc/qemu-ifup script
cp /mnt/opt/openslx/plugin-repo/qemukvm/qemu-ifup /mnt/etc/qemu-ifup
cp /mnt/opt/openslx/plugin-repo/qemukvm/qemu-ifup.sudo \
/mnt/etc/opt/openslx
chmod u+x /mnt/etc/opt/openslx/qemu-ifup.sudo
echo "%users ALL=NOPASSWD: /etc/opt/openslx/qemu-ifup.sudo" \
>>/mnt/etc/sudoers
fi
else
[ $DEBUGLEVEL -gt 0 ] && echo " * Configuration of qemukvm plugin failed"
fi
|