|
...
|
...
|
@@ -87,8 +87,9 @@ EC2_DMZ_HOST=${EC2_DMZ_HOST:-$HOST_IP}
|
|
87
|
87
|
# ip or you risk breaking things.
|
|
88
|
88
|
# FLAT_INTERFACE=eth0
|
|
89
|
89
|
|
|
90
|
|
-# Nova hypervisor configuration
|
|
91
|
|
-LIBVIRT_TYPE=${LIBVIRT_TYPE:-qemu}
|
|
|
90
|
+# Nova hypervisor configuration. We default to **kvm** but will drop back to
|
|
|
91
|
+# **qemu** if we are unable to load the kvm module.
|
|
|
92
|
+LIBVIRT_TYPE=${LIBVIRT_TYPE:-kvm}
|
|
92
|
93
|
|
|
93
|
94
|
# Mysql connection info
|
|
94
|
95
|
MYSQL_USER=${MYSQL_USER:-root}
|
|
...
|
...
|
@@ -156,6 +157,11 @@ git_clone https://github.com/cloudbuilders/openstack-munin.git $MUNIN_DIR
|
|
156
|
156
|
# Initialization
|
|
157
|
157
|
# ==============
|
|
158
|
158
|
|
|
|
159
|
+
|
|
|
160
|
+# create a new named screen to store things in
|
|
|
161
|
+screen -d -m -S nova -t nova
|
|
|
162
|
+sleep 1
|
|
|
163
|
+
|
|
159
|
164
|
# setup our checkouts so they are installed into python path
|
|
160
|
165
|
# allowing ``import nova`` or ``import glance.client``
|
|
161
|
166
|
cd $NOVA_DIR; sudo python setup.py develop
|
|
...
|
...
|
@@ -282,53 +288,21 @@ fi
|
|
282
|
282
|
# Nova
|
|
283
|
283
|
# ----
|
|
284
|
284
|
|
|
285
|
|
-function add_nova_flag {
|
|
286
|
|
- echo "$1" >> $NOVA_DIR/bin/nova.conf
|
|
287
|
|
-}
|
|
288
|
|
-
|
|
289
|
|
-# (re)create nova.conf
|
|
290
|
|
-rm -f $NOVA_DIR/bin/nova.conf
|
|
291
|
|
-add_nova_flag "--verbose"
|
|
292
|
|
-add_nova_flag "--nodaemon"
|
|
293
|
|
-add_nova_flag "--dhcpbridge_flagfile=$NOVA_DIR/bin/nova.conf"
|
|
294
|
|
-add_nova_flag "--network_manager=nova.network.manager.$NET_MAN"
|
|
295
|
|
-add_nova_flag "--my_ip=$HOST_IP"
|
|
296
|
|
-add_nova_flag "--public_interface=$INTERFACE"
|
|
297
|
|
-add_nova_flag "--vlan_interface=$INTERFACE"
|
|
298
|
|
-add_nova_flag "--sql_connection=$BASE_SQL_CONN/nova"
|
|
299
|
|
-add_nova_flag "--libvirt_type=$LIBVIRT_TYPE"
|
|
300
|
|
-add_nova_flag "--osapi_extensions_path=$API_DIR/extensions"
|
|
301
|
|
-add_nova_flag "--vncproxy_url=http://$HOST_IP:6080"
|
|
302
|
|
-add_nova_flag "--vncproxy_wwwroot=$NOVNC_DIR/"
|
|
303
|
|
-add_nova_flag "--api_paste_config=$KEYSTONE_DIR/examples/paste/nova-api-paste.ini"
|
|
304
|
|
-add_nova_flag "--image_service=nova.image.glance.GlanceImageService"
|
|
305
|
|
-add_nova_flag "--ec2_dmz_host=$EC2_DMZ_HOST"
|
|
306
|
|
-add_nova_flag "--rabbit_host=$RABBIT_HOST"
|
|
307
|
|
-add_nova_flag "--glance_api_servers=$GLANCE_HOSTPORT"
|
|
308
|
|
-if [ -n "$FLAT_INTERFACE" ]; then
|
|
309
|
|
- add_nova_flag "--flat_interface=$FLAT_INTERFACE"
|
|
310
|
|
-fi
|
|
311
|
|
-if [ -n "$MULTI_HOST" ]; then
|
|
312
|
|
- add_nova_flag "--multi_host=$MULTI_HOST"
|
|
313
|
|
-fi
|
|
314
|
|
-
|
|
315
|
|
-# create a new named screen to store things in
|
|
316
|
|
-screen -d -m -S nova -t nova
|
|
317
|
|
-sleep 1
|
|
318
|
285
|
|
|
319
|
286
|
if [[ "$ENABLED_SERVICES" =~ "n-cpu" ]]; then
|
|
320
|
287
|
|
|
321
|
|
- # attempt to load modules: kvm (hardware virt) and nbd (network block
|
|
322
|
|
- # device - used to manage qcow images)
|
|
|
288
|
+ # attempt to load modules: nbd (network block device - used to manage
|
|
|
289
|
+ # qcow images) and kvm (hardware based virtualization). If unable to
|
|
|
290
|
+ # load kvm, set the libvirt type to qemu.
|
|
323
|
291
|
sudo modprobe nbd || true
|
|
324
|
|
- sudo modprobe kvm || true
|
|
|
292
|
+ if ! sudo modprobe kvm; then
|
|
|
293
|
+ LIBVIRT_TYPE=qemu
|
|
|
294
|
+ fi
|
|
325
|
295
|
# User needs to be member of libvirtd group for nova-compute to use libvirt.
|
|
326
|
296
|
sudo usermod -a -G libvirtd `whoami`
|
|
327
|
297
|
# if kvm wasn't running before we need to restart libvirt to enable it
|
|
328
|
298
|
sudo /etc/init.d/libvirt-bin restart
|
|
329
|
299
|
|
|
330
|
|
- ## FIXME(ja): should LIBVIRT_TYPE be kvm if kvm module is loaded?
|
|
331
|
|
-
|
|
332
|
300
|
# setup nova instance directory
|
|
333
|
301
|
mkdir -p $NOVA_DIR/instances
|
|
334
|
302
|
|
|
...
|
...
|
@@ -364,6 +338,36 @@ if [[ "$ENABLED_SERVICES" =~ "mysql" ]]; then
|
|
364
|
364
|
$NOVA_DIR/bin/nova-manage floating create $FLOATING_RANGE
|
|
365
|
365
|
fi
|
|
366
|
366
|
|
|
|
367
|
+function add_nova_flag {
|
|
|
368
|
+ echo "$1" >> $NOVA_DIR/bin/nova.conf
|
|
|
369
|
+}
|
|
|
370
|
+
|
|
|
371
|
+# (re)create nova.conf
|
|
|
372
|
+rm -f $NOVA_DIR/bin/nova.conf
|
|
|
373
|
+add_nova_flag "--verbose"
|
|
|
374
|
+add_nova_flag "--nodaemon"
|
|
|
375
|
+add_nova_flag "--dhcpbridge_flagfile=$NOVA_DIR/bin/nova.conf"
|
|
|
376
|
+add_nova_flag "--network_manager=nova.network.manager.$NET_MAN"
|
|
|
377
|
+add_nova_flag "--my_ip=$HOST_IP"
|
|
|
378
|
+add_nova_flag "--public_interface=$INTERFACE"
|
|
|
379
|
+add_nova_flag "--vlan_interface=$INTERFACE"
|
|
|
380
|
+add_nova_flag "--sql_connection=$BASE_SQL_CONN/nova"
|
|
|
381
|
+add_nova_flag "--libvirt_type=$LIBVIRT_TYPE"
|
|
|
382
|
+add_nova_flag "--osapi_extensions_path=$API_DIR/extensions"
|
|
|
383
|
+add_nova_flag "--vncproxy_url=http://$HOST_IP:6080"
|
|
|
384
|
+add_nova_flag "--vncproxy_wwwroot=$NOVNC_DIR/"
|
|
|
385
|
+add_nova_flag "--api_paste_config=$KEYSTONE_DIR/examples/paste/nova-api-paste.ini"
|
|
|
386
|
+add_nova_flag "--image_service=nova.image.glance.GlanceImageService"
|
|
|
387
|
+add_nova_flag "--ec2_dmz_host=$EC2_DMZ_HOST"
|
|
|
388
|
+add_nova_flag "--rabbit_host=$RABBIT_HOST"
|
|
|
389
|
+add_nova_flag "--glance_api_servers=$GLANCE_HOSTPORT"
|
|
|
390
|
+if [ -n "$FLAT_INTERFACE" ]; then
|
|
|
391
|
+ add_nova_flag "--flat_interface=$FLAT_INTERFACE"
|
|
|
392
|
+fi
|
|
|
393
|
+if [ -n "$MULTI_HOST" ]; then
|
|
|
394
|
+ add_nova_flag "--multi_host=$MULTI_HOST"
|
|
|
395
|
+fi
|
|
|
396
|
+
|
|
367
|
397
|
# Keystone
|
|
368
|
398
|
# --------
|
|
369
|
399
|
|