Browse code

Merge "Move configuration notes into configuration guide"

Jenkins authored on 2015/08/28 10:09:05
Showing 2 changed files
... ...
@@ -93,345 +93,14 @@ for example).
93 93
 
94 94
 # Customizing
95 95
 
96
-You can override environment variables used in `stack.sh` by creating file
97
-name `local.conf` with a ``localrc`` section as shown below.  It is likely
98
-that you will need to do this to tweak your networking configuration should
99
-you need to access your cloud from a different host.
96
+You can override environment variables used in `stack.sh` by creating
97
+file name `local.conf` with a ``localrc`` section as shown below.  It
98
+is likely that you will need to do this to tweak several settings for
99
+your environment.
100 100
 
101 101
     [[local|localrc]]
102 102
     VARIABLE=value
103 103
 
104
-See the **Local Configuration** section below for more details.
105
-
106
-# Database Backend
107
-
108
-Multiple database backends are available. The available databases are defined
109
-in the lib/databases directory.
110
-`mysql` is the default database, choose a different one by putting the
111
-following in the `localrc` section:
112
-
113
-    disable_service mysql
114
-    enable_service postgresql
115
-
116
-`mysql` is the default database.
117
-
118
-# RPC Backend
119
-
120
-Support for a RabbitMQ RPC backend is included. Additional RPC backends may
121
-be available via external plugins.  Enabling or disabling RabbitMQ is handled
122
-via the usual service functions and ``ENABLED_SERVICES``.
123
-
124
-Example disabling RabbitMQ in ``local.conf``:
125
-
126
-    disable_service rabbit
127
-
128
-# Apache Frontend
129
-
130
-Apache web server can be enabled for wsgi services that support being deployed
131
-under HTTPD + mod_wsgi. By default, services that recommend running under
132
-HTTPD + mod_wsgi are deployed under Apache. To use an alternative deployment
133
-strategy (e.g. eventlet) for services that support an alternative to HTTPD +
134
-mod_wsgi set ``ENABLE_HTTPD_MOD_WSGI_SERVICES`` to ``False`` in your
135
-``local.conf``.
136
-
137
-Each service that can be run under HTTPD + mod_wsgi also has an override
138
-toggle available that can be set in your ``local.conf``.
139
-
140
-Keystone is run under HTTPD + mod_wsgi by default.
141
-
142
-Example (Keystone):
143
-
144
-    KEYSTONE_USE_MOD_WSGI="True"
145
-
146
-Example (Nova):
147
-
148
-    NOVA_USE_MOD_WSGI="True"
149
-
150
-Example (Swift):
151
-
152
-    SWIFT_USE_MOD_WSGI="True"
153
-
154
-# Swift
155
-
156
-Swift is disabled by default.  When enabled, it is configured with
157
-only one replica to avoid being IO/memory intensive on a small
158
-vm. When running with only one replica the account, container and
159
-object services will run directly in screen. The others services like
160
-replicator, updaters or auditor runs in background.
161
-
162
-If you would like to enable Swift you can add this to your `localrc` section:
163
-
164
-    enable_service s-proxy s-object s-container s-account
165
-
166
-If you want a minimal Swift install with only Swift and Keystone you
167
-can have this instead in your `localrc` section:
168
-
169
-    disable_all_services
170
-    enable_service key mysql s-proxy s-object s-container s-account
171
-
172
-If you only want to do some testing of a real normal swift cluster
173
-with multiple replicas you can do so by customizing the variable
174
-`SWIFT_REPLICAS` in your `localrc` section (usually to 3).
175
-
176
-# Swift S3
177
-
178
-If you are enabling `swift3` in `ENABLED_SERVICES` DevStack will
179
-install the swift3 middleware emulation. Swift will be configured to
180
-act as a S3 endpoint for Keystone so effectively replacing the
181
-`nova-objectstore`.
182
-
183
-Only Swift proxy server is launched in the screen session all other
184
-services are started in background and managed by `swift-init` tool.
185
-
186
-# Neutron
187
-
188
-Basic Setup
189
-
190
-In order to enable Neutron in a single node setup, you'll need the
191
-following settings in your `local.conf`:
192
-
193
-    disable_service n-net
194
-    enable_service q-svc
195
-    enable_service q-agt
196
-    enable_service q-dhcp
197
-    enable_service q-l3
198
-    enable_service q-meta
199
-    enable_service q-metering
200
-
201
-Then run `stack.sh` as normal.
202
-
203
-DevStack supports setting specific Neutron configuration flags to the
204
-service, ML2 plugin, DHCP and L3 configuration files:
205
-
206
-    [[post-config|/$Q_PLUGIN_CONF_FILE]]
207
-    [ml2]
208
-    mechanism_drivers=openvswitch,l2population
209
-
210
-    [[post-config|$NEUTRON_CONF]]
211
-    [DEFAULT]
212
-    quota_port=42
213
-
214
-    [[post-config|$Q_L3_CONF_FILE]]
215
-    [DEFAULT]
216
-    agent_mode=legacy
217
-
218
-    [[post-config|$Q_DHCP_CONF_FILE]]
219
-    [DEFAULT]
220
-    dnsmasq_dns_servers = 8.8.8.8,8.8.4.4
221
-
222
-The ML2 plugin can run with the OVS, LinuxBridge, or Hyper-V agents on compute
223
-hosts. This is a simple way to configure the ml2 plugin:
224
-
225
-    # VLAN configuration
226
-    ENABLE_TENANT_VLANS=True
227
-
228
-    # GRE tunnel configuration
229
-    ENABLE_TENANT_TUNNELS=True
230
-
231
-    # VXLAN tunnel configuration
232
-    Q_ML2_TENANT_NETWORK_TYPE=vxlan
233
-
234
-The above will default in DevStack to using the OVS on each compute host.
235
-To change this, set the `Q_AGENT` variable to the agent you want to run
236
-(e.g. linuxbridge).
237
-
238
-    Variable Name                    Notes
239
-    ----------------------------------------------------------------------------
240
-    Q_AGENT                          This specifies which agent to run with the
241
-                                     ML2 Plugin (Typically either `openvswitch`
242
-                                     or `linuxbridge`).
243
-                                     Defaults to `openvswitch`.
244
-    Q_ML2_PLUGIN_MECHANISM_DRIVERS   The ML2 MechanismDrivers to load. The default
245
-                                     is `openvswitch,linuxbridge`.
246
-    Q_ML2_PLUGIN_TYPE_DRIVERS        The ML2 TypeDrivers to load. Defaults to
247
-                                     all available TypeDrivers.
248
-    Q_ML2_PLUGIN_GRE_TYPE_OPTIONS    GRE TypeDriver options. Defaults to
249
-                                     `tunnel_id_ranges=1:1000'.
250
-    Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS  VXLAN TypeDriver options. Defaults to
251
-                                     `vni_ranges=1001:2000`
252
-    Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS   VLAN TypeDriver options. Defaults to none.
253
-
254
-# Heat
255
-
256
-Heat is disabled by default (see `stackrc` file). To enable it explicitly
257
-you'll need the following settings in your `localrc` section:
258
-
259
-    enable_service heat h-api h-api-cfn h-api-cw h-eng
260
-
261
-Heat can also run in standalone mode, and be configured to orchestrate
262
-on an external OpenStack cloud. To launch only Heat in standalone mode
263
-you'll need the following settings in your `localrc` section:
264
-
265
-    disable_all_services
266
-    enable_service rabbit mysql heat h-api h-api-cfn h-api-cw h-eng
267
-    HEAT_STANDALONE=True
268
-    KEYSTONE_SERVICE_HOST=...
269
-    KEYSTONE_AUTH_HOST=...
270
-
271
-# Tempest
272
-
273
-If tempest has been successfully configured, a basic set of smoke
274
-tests can be run as follows:
275
-
276
-    $ cd /opt/stack/tempest
277
-    $ tox -efull  tempest.scenario.test_network_basic_ops
278
-
279
-By default tempest is downloaded and the config file is generated, but the
280
-tempest package is not installed in the system's global site-packages (the
281
-package install includes installing dependences). So tempest won't run
282
-outside of tox. If you would like to install it add the following to your
283
-``localrc`` section:
284
-
285
-    INSTALL_TEMPEST=True
286
-
287
-# DevStack on Xenserver
288
-
289
-If you would like to use Xenserver as the hypervisor, please refer
290
-to the instructions in `./tools/xen/README.md`.
291
-
292
-# Additional Projects
293
-
294
-DevStack has a hook mechanism to call out to a dispatch script at specific
295
-points in the execution of `stack.sh`, `unstack.sh` and `clean.sh`.  This
296
-allows upper-layer projects, especially those that the lower layer projects
297
-have no dependency on, to be added to DevStack without modifying the core
298
-scripts.  Tempest is built this way as an example of how to structure the
299
-dispatch script, see `extras.d/80-tempest.sh`.  See `extras.d/README.md`
300
-for more information.
301
-
302
-# Multi-Node Setup
303
-
304
-A more interesting setup involves running multiple compute nodes, with Neutron
305
-networks connecting VMs on different compute nodes.
306
-You should run at least one "controller node", which should have a `stackrc`
307
-that includes at least:
308
-
309
-    disable_service n-net
310
-    enable_service q-svc
311
-    enable_service q-agt
312
-    enable_service q-dhcp
313
-    enable_service q-l3
314
-    enable_service q-meta
315
-    enable_service neutron
316
-
317
-You likely want to change your `localrc` section to run a scheduler that
318
-will balance VMs across hosts:
319
-
320
-    SCHEDULER=nova.scheduler.filter_scheduler.FilterScheduler
321
-
322
-You can then run many compute nodes, each of which should have a `stackrc`
323
-which includes the following, with the IP address of the above controller node:
324
-
325
-    ENABLED_SERVICES=n-cpu,rabbit,neutron,q-agt
326
-    SERVICE_HOST=[IP of controller node]
327
-    MYSQL_HOST=$SERVICE_HOST
328
-    RABBIT_HOST=$SERVICE_HOST
329
-    Q_HOST=$SERVICE_HOST
330
-    MATCHMAKER_REDIS_HOST=$SERVICE_HOST
331
-
332
-# Multi-Region Setup
333
-
334
-We want to setup two devstack (RegionOne and RegionTwo) with shared keystone
335
-(same users and services) and horizon.
336
-Keystone and Horizon will be located in RegionOne.
337
-Full spec is available at:
338
-https://wiki.openstack.org/wiki/Heat/Blueprints/Multi_Region_Support_for_Heat.
339
-
340
-In RegionOne:
341
-
342
-    REGION_NAME=RegionOne
343
-
344
-In RegionTwo:
345
-
346
-    disable_service horizon
347
-    KEYSTONE_SERVICE_HOST=<KEYSTONE_IP_ADDRESS_FROM_REGION_ONE>
348
-    KEYSTONE_AUTH_HOST=<KEYSTONE_IP_ADDRESS_FROM_REGION_ONE>
349
-    REGION_NAME=RegionTwo
350
-
351
-# Cells
352
-
353
-Cells is a new scaling option with a full spec at:
354
-http://wiki.openstack.org/blueprint-nova-compute-cells.
355
-
356
-To setup a cells environment add the following to your `localrc` section:
357
-
358
-    enable_service n-cell
359
-
360
-Be aware that there are some features currently missing in cells, one notable
361
-one being security groups.  The exercises have been patched to disable
362
-functionality not supported by cells.
363
-
364
-# IPv6
365
-
366
-By default, most Openstack services are bound to 0.0.0.0
367
-and service endpoints are registered as IPv4 addresses.
368
-A new variable was created to control this behavior, and to
369
-allow for operation over IPv6 instead of IPv4.
370
-
371
-For this, add the following to `local.conf`:
372
-
373
-    SERVICE_IP_VERSION=6
374
-
375
-When set to "6" devstack services will open listen sockets on ::
376
-and service endpoints will be registered using HOST_IPV6 as the
377
-address.  The default value for this setting is `4`.  Dual-mode
378
-support, for example `4+6` is not currently supported.
379
-
380
-
381
-# Local Configuration
382
-
383
-Historically DevStack has used ``localrc`` to contain all local configuration
384
-and customizations. More and more of the configuration variables available for
385
-DevStack are passed-through to the individual project configuration files.
386
-The old mechanism for this required specific code for each file and did not
387
-scale well.  This is handled now by a master local configuration file.
388
-
389
-# local.conf
390
-
391
-The new config file ``local.conf`` is an extended-INI format that introduces
392
-a new meta-section header that provides some additional information such
393
-as a phase name and destination config filename:
394
-
395
-    [[ <phase> | <config-file-name> ]]
396
-
397
-where ``<phase>`` is one of a set of phase names defined by ``stack.sh``
398
-and ``<config-file-name>`` is the configuration filename.  The filename is
399
-eval'ed in the ``stack.sh`` context so all environment variables are
400
-available and may be used.  Using the project config file variables in
401
-the header is strongly suggested (see the ``NOVA_CONF`` example below).
402
-If the path of the config file does not exist it is skipped.
403
-
404
-The defined phases are:
405
-
406
-* **local** - extracts ``localrc`` from ``local.conf`` before ``stackrc`` is sourced
407
-* **post-config** - runs after the layer 2 services are configured
408
-                    and before they are started
409
-* **extra** - runs after services are started and before any files
410
-              in ``extra.d`` are executed
411
-* **post-extra** - runs after files in ``extra.d`` are executed
412
-
413
-The file is processed strictly in sequence; meta-sections may be specified more
414
-than once but if any settings are duplicated the last to appear in the file
415
-will be used.
416
-
417
-    [[post-config|$NOVA_CONF]]
418
-    [DEFAULT]
419
-    use_syslog = True
420
-
421
-    [osapi_v3]
422
-    enabled = False
423
-
424
-A specific meta-section ``local|localrc`` is used to provide a default
425
-``localrc`` file (actually ``.localrc.auto``).  This allows all custom
426
-settings for DevStack to be contained in a single file.  If ``localrc``
427
-exists it will be used instead to preserve backward-compatibility.
428
-
429
-    [[local|localrc]]
430
-    FIXED_RANGE=10.254.1.0/24
431
-    ADMIN_PASSWORD=speciale
432
-    LOGFILE=$DEST/logs/stack.sh.log
433
-
434
-Note that ``Q_PLUGIN_CONF_FILE`` is unique in that it is assumed to *NOT*
435
-start with a ``/`` (slash) character.  A slash will need to be added:
436
-
437
-    [[post-config|/$Q_PLUGIN_CONF_FILE]]
104
+Start by reading the [configuration
105
+guide](doc/source/configuration.rst) for details of the many available
106
+options.
438 107
\ No newline at end of file
... ...
@@ -148,6 +148,34 @@ will not be set if there is no IPv6 address on the default Ethernet interface.
148 148
 Setting it here also makes it available for ``openrc`` to set ``OS_AUTH_URL``.
149 149
 ``HOST_IPV6`` is not set by default.
150 150
 
151
+Examples
152
+========
153
+
154
+-  Eliminate a Cinder pass-through (``CINDER_PERIODIC_INTERVAL``):
155
+
156
+   ::
157
+
158
+       [[post-config|$CINDER_CONF]]
159
+       [DEFAULT]
160
+       periodic_interval = 60
161
+
162
+-  Sample ``local.conf`` with screen logging enabled:
163
+
164
+   ::
165
+
166
+       [[local|localrc]]
167
+       FIXED_RANGE=10.254.1.0/24
168
+       NETWORK_GATEWAY=10.254.1.1
169
+       LOGDAYS=1
170
+       LOGDIR=$DEST/logs
171
+       LOGFILE=$LOGDIR/stack.sh.log
172
+       ADMIN_PASSWORD=quiet
173
+       DATABASE_PASSWORD=$ADMIN_PASSWORD
174
+       RABBIT_PASSWORD=$ADMIN_PASSWORD
175
+       SERVICE_PASSWORD=$ADMIN_PASSWORD
176
+       SERVICE_TOKEN=a682f596-76f3-11e3-b3b2-e716f9080d50
177
+
178
+
151 179
 Configuration Notes
152 180
 ===================
153 181
 
... ...
@@ -228,6 +256,72 @@ to direct the message stream to the log host.  |
228 228
         SYSLOG_HOST=$HOST_IP
229 229
         SYSLOG_PORT=516
230 230
 
231
+
232
+Database Backend
233
+----------------
234
+
235
+Multiple database backends are available. The available databases are defined
236
+in the lib/databases directory.
237
+`mysql` is the default database, choose a different one by putting the
238
+following in the `localrc` section:
239
+
240
+   ::
241
+
242
+      disable_service mysql
243
+      enable_service postgresql
244
+
245
+`mysql` is the default database.
246
+
247
+RPC Backend
248
+-----------
249
+
250
+Support for a RabbitMQ RPC backend is included. Additional RPC
251
+backends may be available via external plugins.  Enabling or disabling
252
+RabbitMQ is handled via the usual service functions and
253
+``ENABLED_SERVICES``.
254
+
255
+Example disabling RabbitMQ in ``local.conf``:
256
+
257
+::
258
+    disable_service rabbit
259
+
260
+
261
+Apache Frontend
262
+---------------
263
+
264
+The Apache web server can be enabled for wsgi services that support
265
+being deployed under HTTPD + mod_wsgi. By default, services that
266
+recommend running under HTTPD + mod_wsgi are deployed under Apache. To
267
+use an alternative deployment strategy (e.g. eventlet) for services
268
+that support an alternative to HTTPD + mod_wsgi set
269
+``ENABLE_HTTPD_MOD_WSGI_SERVICES`` to ``False`` in your
270
+``local.conf``.
271
+
272
+Each service that can be run under HTTPD + mod_wsgi also has an
273
+override toggle available that can be set in your ``local.conf``.
274
+
275
+Keystone is run under Apache with ``mod_wsgi`` by default.
276
+
277
+Example (Keystone)
278
+
279
+::
280
+
281
+    KEYSTONE_USE_MOD_WSGI="True"
282
+
283
+Example (Nova):
284
+
285
+::
286
+
287
+    NOVA_USE_MOD_WSGI="True"
288
+
289
+Example (Swift):
290
+
291
+::
292
+
293
+    SWIFT_USE_MOD_WSGI="True"
294
+
295
+
296
+
231 297
 Libraries from Git
232 298
 ------------------
233 299
 
... ...
@@ -295,48 +389,6 @@ that matches requirements.
295 295
 
296 296
         PIP_UPGRADE=True
297 297
 
298
-Swift
299
-
300
-Swift is now used as the back-end for the S3-like object store.  When
301
-enabled Nova's objectstore (``n-obj`` in ``ENABLED_SERVICES``) is
302
-automatically disabled. Enable Swift by adding it services to
303
-``ENABLED_SERVICES``
304
-
305
-    ::
306
-
307
-       enable_service s-proxy s-object s-container s-account
308
-
309
-Setting Swift's hash value is required and you will be prompted for it
310
-if Swift is enabled so just set it to something already:
311
-
312
-    ::
313
-
314
-        SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
315
-
316
-For development purposes the default number of replicas is set to
317
-``1`` to reduce the overhead required. To better simulate a production
318
-deployment set this to ``3`` or more.
319
-
320
-    ::
321
-
322
-        SWIFT_REPLICAS=3
323
-
324
-The data for Swift is stored in the source tree by default (in
325
-``$DEST/swift/data``) and can be moved by setting
326
-``SWIFT_DATA_DIR``. The specified directory will be created if it does
327
-not exist.
328
-
329
-    ::
330
-
331
-        SWIFT_DATA_DIR=$DEST/data/swift
332
-
333
-*Note*: Previously just enabling ``swift`` was sufficient to start the
334
-Swift services. That does not provide proper service granularity,
335
-particularly in multi-host configurations, and is considered
336
-deprecated. Some service combination tests now check for specific
337
-Swift services and the old blanket acceptance will longer work
338
-correctly.
339 298
 
340 299
 Service Catalog Backend
341 300
 -----------------------
... ...
@@ -354,47 +406,6 @@ with ``KEYSTONE_CATALOG_BACKEND``:
354 354
 DevStack's default configuration in ``sql`` mode is set in
355 355
 ``files/keystone_data.sh``
356 356
 
357
-Cinder
358
-
359
-The logical volume group used to hold the Cinder-managed volumes is
360
-set by ``VOLUME_GROUP``, the logical volume name prefix is set with
361
-``VOLUME_NAME_PREFIX`` and the size of the volume backing file is set
362
-with ``VOLUME_BACKING_FILE_SIZE``.
363
-
364
-    ::
365
-
366
-        VOLUME_GROUP="stack-volumes"
367
-        VOLUME_NAME_PREFIX="volume-"
368
-        VOLUME_BACKING_FILE_SIZE=10250M
369
-
370
-Multi-host DevStack
371
-
372
-Running DevStack with multiple hosts requires a custom ``local.conf``
373
-section for each host. The master is the same as a single host
374
-installation with ``MULTI_HOST=True``. The slaves have fewer services
375
-enabled and a couple of host variables pointing to the master.
376
-
377
-Master
378
-~~~~~~
379
-
380
-Set ``MULTI_HOST`` to true
381
-    ::
382
-
383
-        MULTI_HOST=True
384
-
385
-Slave
386
-~~~~~
387
-
388
-Set the following options to point to the master
389
-
390
-    ::
391
-
392
-        MYSQL_HOST=w.x.y.z
393
-        RABBIT_HOST=w.x.y.z
394
-        GLANCE_HOSTPORT=w.x.y.z:9292
395
-        ENABLED_SERVICES=n-vol,n-cpu,n-net,n-api
396 357
 
397 358
 IP Version
398 359
 ----------
... ...
@@ -447,29 +458,163 @@ optionally be used to alter the default IPv6 address
447 447
 
448 448
         HOST_IPV6=${some_local_ipv6_address}
449 449
 
450
-Examples
451
-========
450
+Multi-node setup
451
+~~~~~~~~~~~~~~~~
452 452
 
453
--  Eliminate a Cinder pass-through (``CINDER_PERIODIC_INTERVAL``):
453
+See the :doc:`multi-node lab guide<guides/multinode-lab>`
454 454
 
455
-   ::
455
+Projects
456
+--------
456 457
 
457
-       [[post-config|$CINDER_CONF]]
458
-       [DEFAULT]
459
-       periodic_interval = 60
458
+Neutron
459
+~~~~~~~
460 460
 
461
--  Sample ``local.conf`` with screen logging enabled:
461
+See the :doc:`neutron configuration guide<guides/neutron>` for
462
+details on configuration of Neutron
462 463
 
463
-   ::
464 464
 
465
-       [[local|localrc]]
466
-       FIXED_RANGE=10.254.1.0/24
467
-       NETWORK_GATEWAY=10.254.1.1
468
-       LOGDAYS=1
469
-       LOGDIR=$DEST/logs
470
-       LOGFILE=$LOGDIR/stack.sh.log
471
-       ADMIN_PASSWORD=quiet
472
-       DATABASE_PASSWORD=$ADMIN_PASSWORD
473
-       RABBIT_PASSWORD=$ADMIN_PASSWORD
474
-       SERVICE_PASSWORD=$ADMIN_PASSWORD
475
-       SERVICE_TOKEN=a682f596-76f3-11e3-b3b2-e716f9080d50
465
+Swift
466
+~~~~~
467
+
468
+Swift is disabled by default.  When enabled, it is configured with
469
+only one replica to avoid being IO/memory intensive on a small
470
+VM. When running with only one replica the account, container and
471
+object services will run directly in screen. The others services like
472
+replicator, updaters or auditor runs in background.
473
+
474
+If you would like to enable Swift you can add this to your `localrc`
475
+section:
476
+
477
+::
478
+
479
+    enable_service s-proxy s-object s-container s-account
480
+
481
+If you want a minimal Swift install with only Swift and Keystone you
482
+can have this instead in your `localrc` section:
483
+
484
+::
485
+
486
+    disable_all_services
487
+    enable_service key mysql s-proxy s-object s-container s-account
488
+
489
+If you only want to do some testing of a real normal swift cluster
490
+with multiple replicas you can do so by customizing the variable
491
+`SWIFT_REPLICAS` in your `localrc` section (usually to 3).
492
+
493
+Swift S3
494
+
495
+If you are enabling `swift3` in `ENABLED_SERVICES` DevStack will
496
+install the swift3 middleware emulation. Swift will be configured to
497
+act as a S3 endpoint for Keystone so effectively replacing the
498
+`nova-objectstore`.
499
+
500
+Only Swift proxy server is launched in the screen session all other
501
+services are started in background and managed by `swift-init` tool.
502
+
503
+Heat
504
+~~~~
505
+
506
+Heat is disabled by default (see `stackrc` file). To enable it
507
+explicitly you'll need the following settings in your `localrc`
508
+section
509
+
510
+::
511
+
512
+    enable_service heat h-api h-api-cfn h-api-cw h-eng
513
+
514
+Heat can also run in standalone mode, and be configured to orchestrate
515
+on an external OpenStack cloud. To launch only Heat in standalone mode
516
+you'll need the following settings in your `localrc` section
517
+
518
+::
519
+
520
+    disable_all_services
521
+    enable_service rabbit mysql heat h-api h-api-cfn h-api-cw h-eng
522
+    HEAT_STANDALONE=True
523
+    KEYSTONE_SERVICE_HOST=...
524
+    KEYSTONE_AUTH_HOST=...
525
+
526
+Tempest
527
+~~~~~~~
528
+
529
+If tempest has been successfully configured, a basic set of smoke
530
+tests can be run as follows:
531
+
532
+::
533
+
534
+    $ cd /opt/stack/tempest
535
+    $ tox -efull  tempest.scenario.test_network_basic_ops
536
+
537
+By default tempest is downloaded and the config file is generated, but the
538
+tempest package is not installed in the system's global site-packages (the
539
+package install includes installing dependences). So tempest won't run
540
+outside of tox. If you would like to install it add the following to your
541
+``localrc`` section:
542
+
543
+::
544
+
545
+    INSTALL_TEMPEST=True
546
+
547
+
548
+Xenserver
549
+~~~~~~~~~
550
+
551
+If you would like to use Xenserver as the hypervisor, please refer to
552
+the instructions in `./tools/xen/README.md`.
553
+
554
+Cells
555
+~~~~~
556
+
557
+`Cells <http://wiki.openstack.org/blueprint-nova-compute-cells>`__ is
558
+an alternative scaling option.  To setup a cells environment add the
559
+following to your `localrc` section:
560
+
561
+::
562
+
563
+    enable_service n-cell
564
+
565
+Be aware that there are some features currently missing in cells, one
566
+notable one being security groups.  The exercises have been patched to
567
+disable functionality not supported by cells.
568
+
569
+Cinder
570
+~~~~~~
571
+
572
+The logical volume group used to hold the Cinder-managed volumes is
573
+set by ``VOLUME_GROUP``, the logical volume name prefix is set with
574
+``VOLUME_NAME_PREFIX`` and the size of the volume backing file is set
575
+with ``VOLUME_BACKING_FILE_SIZE``.
576
+
577
+    ::
578
+
579
+        VOLUME_GROUP="stack-volumes"
580
+        VOLUME_NAME_PREFIX="volume-"
581
+        VOLUME_BACKING_FILE_SIZE=10250M
582
+
583
+
584
+Keystone
585
+~~~~~~~~
586
+
587
+Multi-Region Setup
588
+
589
+We want to setup two devstack (RegionOne and RegionTwo) with shared
590
+keystone (same users and services) and horizon.  Keystone and Horizon
591
+will be located in RegionOne.  Full spec is available at:
592
+`<https://wiki.openstack.org/wiki/Heat/Blueprints/Multi_Region_Support_for_Heat>`__.
593
+
594
+In RegionOne:
595
+
596
+::
597
+
598
+    REGION_NAME=RegionOne
599
+
600
+In RegionTwo:
601
+
602
+::
603
+   
604
+    disable_service horizon
605
+    KEYSTONE_SERVICE_HOST=<KEYSTONE_IP_ADDRESS_FROM_REGION_ONE>
606
+    KEYSTONE_AUTH_HOST=<KEYSTONE_IP_ADDRESS_FROM_REGION_ONE>
607
+    REGION_NAME=RegionTwo