Browse code

Reconcile README

Dean Troyer authored on 2011/09/20 04:31:05
Showing 3 changed files
... ...
@@ -1,11 +1,10 @@
1
-Tool to build (nfs export) openstack dev environments
1
+Tool to quickly deploy openstack dev environments
2 2
 
3 3
 # Todo
4 4
 
5 5
 * Add python-novaclient cli support
6 6
 * move keystone/glance/dash to mysql
7 7
 * syslog
8
-* munin
9 8
 * check openstack-puppet recipes to see if anything else is missing
10 9
 * allow rabbit connection to be specified via environment variables with sensible defaults
11 10
 * Add volume support
... ...
@@ -18,7 +17,8 @@ Tool to build (nfs export) openstack dev environments
18 18
 * sqlconn can be set via env
19 19
 * move back to using sudo
20 20
 * move nova to mysql
21
-* create images via vmbuilder and upload images via glance
21
+* munin
22
+* image upload with a script that supports generating images via debootstrap (ubuntu-vm-builder)
22 23
 
23 24
 # Future
24 25
 
... ...
@@ -14,11 +14,11 @@ $BIN_DIR/keystone-manage $* role add Member
14 14
 $BIN_DIR/keystone-manage $* role grant Admin admin
15 15
 
16 16
 #endpointTemplates
17
-# $BIN_DIR/keystone-manage $* endpointTemplates add RegionOne swift http://localhost:8080/v1/AUTH_%tenant_id% http://localhost:8080/ http://localhost:8080/v1/AUTH_%tenant_id% 1 1
18
-$BIN_DIR/keystone-manage $* endpointTemplates add RegionOne nova_compat http://localhost:8774/v1.0/ http://localhost:8774/v1.0  http://localhost:8774/v1.0 1 1
19
-$BIN_DIR/keystone-manage $* endpointTemplates add RegionOne nova http://localhost:8774/v1.1/%tenant_id% http://localhost:8774/v1.1/%tenant_id%  http://localhost:8774/v1.1/%tenant_id% 1 1
20
-$BIN_DIR/keystone-manage $* endpointTemplates add RegionOne glance http://localhost:9292/v1.1/%tenant_id% http://localhost:9292/v1.1/%tenant_id% http://localhost:9292/v1.1/%tenant_id% 1 1
21
-$BIN_DIR/keystone-manage $* endpointTemplates add RegionOne identity http://localhost:5000/v2.0 http://localhost:5001/v2.0 http://localhost:5000/v2.0 1 1
17
+# $BIN_DIR/keystone-manage $* endpointTemplates add RegionOne swift http://%HOST_IP%:8080/v1/AUTH_%tenant_id% http://%HOST_IP%:8080/ http://%HOST_IP%:8080/v1/AUTH_%tenant_id% 1 1
18
+$BIN_DIR/keystone-manage $* endpointTemplates add RegionOne nova_compat http://%HOST_IP%:8774/v1.0/ http://%HOST_IP%:8774/v1.0  http://%HOST_IP%:8774/v1.0 1 1
19
+$BIN_DIR/keystone-manage $* endpointTemplates add RegionOne nova http://%HOST_IP%:8774/v1.1/%tenant_id% http://%HOST_IP%:8774/v1.1/%tenant_id%  http://%HOST_IP%:8774/v1.1/%tenant_id% 1 1
20
+$BIN_DIR/keystone-manage $* endpointTemplates add RegionOne glance http://%HOST_IP%:9292/v1.1/%tenant_id% http://%HOST_IP%:9292/v1.1/%tenant_id% http://%HOST_IP%:9292/v1.1/%tenant_id% 1 1
21
+$BIN_DIR/keystone-manage $* endpointTemplates add RegionOne identity http://%HOST_IP%:5000/v2.0 http://%HOST_IP%:5001/v2.0 http://%HOST_IP%:5000/v2.0 1 1
22 22
 
23 23
 # Tokens
24 24
 $BIN_DIR/keystone-manage $* token add 999888777666 admin admin 2015-02-05T00:00
... ...
@@ -1,12 +1,14 @@
1 1
 #!/usr/bin/env bash
2 2
 
3
-# **stack.sh** is rackspace cloudbuilder's opinionated openstack dev installation.
3
+# **stack.sh** is an opinionated openstack dev installation.
4 4
 
5 5
 # To keep this script simple we assume you are running on an **Ubuntu 11.04
6 6
 # Natty** machine.  It should work in a VM or physical server.  Additionally we
7 7
 # put the list of *apt* and *pip* dependencies and other configuration files in
8 8
 # this repo.  So start by grabbing this script and the dependencies.
9 9
 
10
+# You can grab the most recent version of this script and files from Rackspace 
11
+# Cloud Builders at https://github.com/cloudbuilders/devstack
10 12
 
11 13
 # Sanity Check
12 14
 # ============
... ...
@@ -87,8 +89,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 +159,7 @@ git_clone https://github.com/cloudbuilders/openstack-munin.git $MUNIN_DIR
156 156
 # Initialization
157 157
 # ==============
158 158
 
159
+
159 160
 # setup our checkouts so they are installed into python path
160 161
 # allowing ``import nova`` or ``import glance.client``
161 162
 cd $NOVA_DIR; sudo python setup.py develop
... ...
@@ -237,7 +241,7 @@ fi
237 237
 
238 238
 if [[ "$ENABLED_SERVICES" =~ "munin" ]]; then
239 239
     # allow connections from other hosts
240
-    sudo sed -i -e '/Allow from localhost/s/localhost.*$/all/' /etc/munin/apache.conf
240
+    sudo sed -i -e 's/Allow from localhost/Allow from all/g' /etc/munin/apache.conf
241 241
 
242 242
     cat >/tmp/nova <<EOF
243 243
 [keystone_*]
... ...
@@ -282,53 +286,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
 
... ...
@@ -351,6 +323,36 @@ if [[ "$ENABLED_SERVICES" =~ "n-net" ]]; then
351 351
     mkdir -p $NOVA_DIR/networks
352 352
 fi
353 353
 
354
+function add_nova_flag {
355
+    echo "$1" >> $NOVA_DIR/bin/nova.conf
356
+}
357
+
358
+# (re)create nova.conf
359
+rm -f $NOVA_DIR/bin/nova.conf
360
+add_nova_flag "--verbose"
361
+add_nova_flag "--nodaemon"
362
+add_nova_flag "--dhcpbridge_flagfile=$NOVA_DIR/bin/nova.conf"
363
+add_nova_flag "--network_manager=nova.network.manager.$NET_MAN"
364
+add_nova_flag "--my_ip=$HOST_IP"
365
+add_nova_flag "--public_interface=$INTERFACE"
366
+add_nova_flag "--vlan_interface=$INTERFACE"
367
+add_nova_flag "--sql_connection=$BASE_SQL_CONN/nova"
368
+add_nova_flag "--libvirt_type=$LIBVIRT_TYPE"
369
+add_nova_flag "--osapi_extensions_path=$API_DIR/extensions"
370
+add_nova_flag "--vncproxy_url=http://$HOST_IP:6080"
371
+add_nova_flag "--vncproxy_wwwroot=$NOVNC_DIR/"
372
+add_nova_flag "--api_paste_config=$KEYSTONE_DIR/examples/paste/nova-api-paste.ini"
373
+add_nova_flag "--image_service=nova.image.glance.GlanceImageService"
374
+add_nova_flag "--ec2_dmz_host=$EC2_DMZ_HOST"
375
+add_nova_flag "--rabbit_host=$RABBIT_HOST"
376
+add_nova_flag "--glance_api_servers=$GLANCE_HOSTPORT"
377
+if [ -n "$FLAT_INTERFACE" ]; then
378
+    add_nova_flag "--flat_interface=$FLAT_INTERFACE"
379
+fi
380
+if [ -n "$MULTI_HOST" ]; then
381
+    add_nova_flag "--multi_host=$MULTI_HOST"
382
+fi
383
+
354 384
 if [[ "$ENABLED_SERVICES" =~ "mysql" ]]; then
355 385
     # (re)create nova database
356 386
     mysql -u$MYSQL_USER -p$MYSQL_PASS -e 'DROP DATABASE nova;' || true
... ...
@@ -364,6 +366,7 @@ if [[ "$ENABLED_SERVICES" =~ "mysql" ]]; then
364 364
     $NOVA_DIR/bin/nova-manage floating create $FLOATING_RANGE
365 365
 fi
366 366
 
367
+
367 368
 # Keystone
368 369
 # --------
369 370
 
... ...
@@ -377,8 +380,11 @@ if [[ "$ENABLED_SERVICES" =~ "key" ]]; then
377 377
     cp $FILES/keystone.conf $KEYSTONE_CONF
378 378
     sudo sed -e "s,%SQL_CONN%,$BASE_SQL_CONN/keystone,g" -i $KEYSTONE_CONF
379 379
 
380
+    KEYSTONE_DATA=$KEYSTONE_DIR/bin/keystone_data.sh
381
+    cp $FILES/keystone_data.sh $KEYSTONE_DATA
382
+    sudo sed -e "s,%HOST_IP%,$HOST_IP,g" -i $KEYSTONE_DATA
380 383
     # initialize keystone with default users/endpoints
381
-    BIN_DIR=$KEYSTONE_DIR/bin bash $FILES/keystone_data.sh
384
+    BIN_DIR=$KEYSTONE_DIR/bin bash $KEYSTONE_DATA
382 385
 fi
383 386
 
384 387
 
... ...
@@ -398,6 +404,10 @@ function screen_it {
398 398
     fi
399 399
 }
400 400
 
401
+# create a new named screen to run processes in
402
+screen -d -m -S nova -t nova
403
+sleep 1
404
+
401 405
 screen_it g-api "cd $GLANCE_DIR; bin/glance-api --config-file=etc/glance-api.conf"
402 406
 screen_it g-reg "cd $GLANCE_DIR; bin/glance-registry --config-file=etc/glance-registry.conf"
403 407
 screen_it key "$KEYSTONE_DIR/bin/keystone --config-file $KEYSTONE_CONF"