blob: 318e044909edfa8560694c8727520c80928c1e34 [file] [log] [blame]
Dean Troyer0986a7b2014-10-29 22:08:13 -05001=============
2Configuration
3=============
Sean M. Collins09e550c2014-10-21 11:40:08 -04004
Ian Wienand815db162015-08-06 10:25:45 +10005.. contents::
6 :local:
7 :depth: 1
8
Sean M. Collins09e550c2014-10-21 11:40:08 -04009local.conf
Sean Dague07d7e5b2014-11-17 07:10:14 -050010==========
Sean M. Collins09e550c2014-10-21 11:40:08 -040011
Ian Wienanda35391e2015-08-10 13:53:40 +100012DevStack configuration is modified via the file ``local.conf``. It is
13a modified INI format file that introduces a meta-section header to
14carry additional information regarding the configuration files to be
15changed.
16
17A sample is provided in ``devstack/samples``
Sean M. Collins09e550c2014-10-21 11:40:08 -040018
19The new header is similar to a normal INI section header but with double
20brackets (``[[ ... ]]``) and two internal fields separated by a pipe
dieterly7c7679e2015-09-18 15:10:48 -060021(``|``). Note that there are no spaces between the double brackets and the
22internal fields. Likewise, there are no spaces between the pipe and the
23internal fields:
Sean M. Collins09e550c2014-10-21 11:40:08 -040024::
25
dieterly7c7679e2015-09-18 15:10:48 -060026 '[[' <phase> '|' <config-file-name> ']]'
Sean M. Collins09e550c2014-10-21 11:40:08 -040027
28where ``<phase>`` is one of a set of phase names defined by ``stack.sh``
29and ``<config-file-name>`` is the configuration filename. The filename
30is eval'ed in the ``stack.sh`` context so all environment variables are
31available and may be used. Using the project config file variables in
32the header is strongly suggested (see the ``NOVA_CONF`` example below).
33If the path of the config file does not exist it is skipped.
34
35The defined phases are:
36
37- **local** - extracts ``localrc`` from ``local.conf`` before
38 ``stackrc`` is sourced
Sean M. Collins09e550c2014-10-21 11:40:08 -040039- **post-config** - runs after the layer 2 services are configured and
40 before they are started
41- **extra** - runs after services are started and before any files in
42 ``extra.d`` are executed
YAMAMOTO Takashi961643e2015-07-31 13:45:27 +090043- **post-extra** - runs after files in ``extra.d`` are executed
Sean M. Collins09e550c2014-10-21 11:40:08 -040044
45The file is processed strictly in sequence; meta-sections may be
46specified more than once but if any settings are duplicated the last to
47appear in the file will be used.
48
49::
50
51 [[post-config|$NOVA_CONF]]
52 [DEFAULT]
53 use_syslog = True
54
55 [osapi_v3]
56 enabled = False
57
58A specific meta-section ``local|localrc`` is used to provide a default
59``localrc`` file (actually ``.localrc.auto``). This allows all custom
60settings for DevStack to be contained in a single file. If ``localrc``
Ian Wienand7cd16ce2016-04-08 09:40:56 +100061exists it will be used instead to preserve backward-compatibility.
Sean M. Collins09e550c2014-10-21 11:40:08 -040062
63::
64
65 [[local|localrc]]
Kevin Benton4bfbc292016-11-15 17:26:05 -080066 IPV4_ADDRS_SAFE_TO_USE=10.254.1.0/24
Sean M. Collins09e550c2014-10-21 11:40:08 -040067 ADMIN_PASSWORD=speciale
68 LOGFILE=$DEST/logs/stack.sh.log
69
70Note that ``Q_PLUGIN_CONF_FILE`` is unique in that it is assumed to
71*NOT* start with a ``/`` (slash) character. A slash will need to be
72added:
73
74::
75
76 [[post-config|/$Q_PLUGIN_CONF_FILE]]
77
78Also note that the ``localrc`` section is sourced as a shell script
Juan Antonio Osorio Roblesfe6dccb2014-11-28 13:12:14 +020079fragment and MUST conform to the shell requirements, specifically no
Sean M. Collins09e550c2014-10-21 11:40:08 -040080whitespace around ``=`` (equals).
81
Ian Wienand7cd16ce2016-04-08 09:40:56 +100082openrc
83======
84
85``openrc`` configures login credentials suitable for use with the
86OpenStack command-line tools. ``openrc`` sources ``stackrc`` at the
87beginning (which in turn sources the ``localrc`` section of
88``local.conf``) in order to pick up ``HOST_IP`` and/or ``SERVICE_HOST``
89to use in the endpoints. The values shown below are the default values.
90
91OS\_PROJECT\_NAME (OS\_TENANT\_NAME)
92 Keystone has
93 standardized the term *project* as the entity that owns resources. In
94 some places references still exist to the previous term
95 *tenant* for this use. Also, *project\_name* is preferred to
96 *project\_id*. OS\_TENANT\_NAME remains supported for compatibility
97 with older tools.
98
99 ::
100
101 OS_PROJECT_NAME=demo
102
103OS\_USERNAME
104 In addition to the owning entity (project), OpenStack calls the entity
105 performing the action *user*.
106
107 ::
108
109 OS_USERNAME=demo
110
111OS\_PASSWORD
112 Keystone's default authentication requires a password be provided.
113 The usual cautions about putting passwords in environment variables
114 apply, for most DevStack uses this may be an acceptable tradeoff.
115
116 ::
117
118 OS_PASSWORD=secret
119
120HOST\_IP, SERVICE\_HOST
121 Set API endpoint host using ``HOST_IP``. ``SERVICE_HOST`` may also
122 be used to specify the endpoint, which is convenient for some
123 ``local.conf`` configurations. Typically, ``HOST_IP`` is set in the
124 ``localrc`` section.
125
126 ::
127
128 HOST_IP=127.0.0.1
129 SERVICE_HOST=$HOST_IP
130
131OS\_AUTH\_URL
132 Authenticating against an OpenStack cloud using Keystone returns a
133 *Token* and *Service Catalog*. The catalog contains the endpoints
134 for all services the user/tenant has access to - including Nova,
135 Glance, Keystone and Swift.
136
137 ::
138
139 OS_AUTH_URL=http://$SERVICE_HOST:5000/v2.0
140
141KEYSTONECLIENT\_DEBUG, NOVACLIENT\_DEBUG
142 Set command-line client log level to ``DEBUG``. These are commented
143 out by default.
144
145 ::
146
147 # export KEYSTONECLIENT_DEBUG=1
148 # export NOVACLIENT_DEBUG=1
149
150
151
James Polley5f2eb6d2015-03-30 17:36:26 +1100152.. _minimal-configuration:
153
Sean M. Collins09e550c2014-10-21 11:40:08 -0400154Minimal Configuration
Sean Dague07d7e5b2014-11-17 07:10:14 -0500155=====================
Sean M. Collins09e550c2014-10-21 11:40:08 -0400156
157While ``stack.sh`` is happy to run without a ``localrc`` section in
158``local.conf``, devlife is better when there are a few minimal variables
159set. This is an example of a minimal configuration that touches the
160values that most often need to be set.
161
162- no logging
163- pre-set the passwords to prevent interactive prompts
Kevin Benton4bfbc292016-11-15 17:26:05 -0800164- move network ranges away from the local network (``IPV4_ADDRS_SAFE_TO_USE``
165 and ``FLOATING_RANGE``, commented out below)
Sean M. Collins09e550c2014-10-21 11:40:08 -0400166- set the host IP if detection is unreliable (``HOST_IP``, commented
167 out below)
168
169::
170
171 [[local|localrc]]
Balagopal7ed812c2016-03-01 04:43:31 +0000172 ADMIN_PASSWORD=secret
Sean M. Collins09e550c2014-10-21 11:40:08 -0400173 DATABASE_PASSWORD=$ADMIN_PASSWORD
174 RABBIT_PASSWORD=$ADMIN_PASSWORD
175 SERVICE_PASSWORD=$ADMIN_PASSWORD
Kevin Benton4bfbc292016-11-15 17:26:05 -0800176 #IPV4_ADDRS_SAFE_TO_USE=172.31.1.0/24
Sean M. Collins09e550c2014-10-21 11:40:08 -0400177 #FLOATING_RANGE=192.168.20.0/25
178 #HOST_IP=10.3.4.5
179
180If the ``*_PASSWORD`` variables are not set here you will be prompted to
181enter values for them by ``stack.sh``.
182
183The network ranges must not overlap with any networks in use on the
184host. Overlap is not uncommon as RFC-1918 'private' ranges are commonly
185used for both the local networking and Nova's fixed and floating ranges.
186
187``HOST_IP`` is normally detected on the first run of ``stack.sh`` but
188often is indeterminate on later runs due to the IP being moved from an
Juan Antonio Osorio Roblesfe6dccb2014-11-28 13:12:14 +0200189Ethernet interface to a bridge on the host. Setting it here also makes it
Sean M. Collins09e550c2014-10-21 11:40:08 -0400190available for ``openrc`` to set ``OS_AUTH_URL``. ``HOST_IP`` is not set
191by default.
192
Brian Haley180f5eb2015-06-16 13:14:31 -0400193``HOST_IPV6`` is normally detected on the first run of ``stack.sh`` but
194will not be set if there is no IPv6 address on the default Ethernet interface.
195Setting it here also makes it available for ``openrc`` to set ``OS_AUTH_URL``.
196``HOST_IPV6`` is not set by default.
197
Ian Wienanda35391e2015-08-10 13:53:40 +1000198Historical Notes
199================
Ian Wienand7d5be292015-08-10 13:39:17 +1000200
Ian Wienanda35391e2015-08-10 13:53:40 +1000201Historically DevStack obtained all local configuration and
202customizations from a ``localrc`` file. In Oct 2013 the
203``local.conf`` configuration method was introduced (in `review 46768
204<https://review.openstack.org/#/c/46768/>`__) to simplify this
205process.
Ian Wienand7d5be292015-08-10 13:39:17 +1000206
Ian Wienand815db162015-08-06 10:25:45 +1000207Configuration Notes
208===================
209
210.. contents::
211 :local:
Sean M. Collins09e550c2014-10-21 11:40:08 -0400212
Ian Wienand7cd16ce2016-04-08 09:40:56 +1000213Service Repos
214-------------
215
216The Git repositories used to check out the source for each service are
217controlled by a pair of variables set for each service. ``*_REPO``
218points to the repository and ``*_BRANCH`` selects which branch to
219check out. These may be overridden in ``local.conf`` to pull source
220from a different repo for testing, such as a Gerrit branch
221proposal. ``GIT_BASE`` points to the primary repository server.
222
223 ::
224
225 NOVA_REPO=$GIT_BASE/openstack/nova.git
226 NOVA_BRANCH=master
227
228To pull a branch directly from Gerrit, get the repo and branch from
229the Gerrit review page:
230
231 ::
232
233 git fetch https://review.openstack.org/p/openstack/nova refs/changes/50/5050/1 && git checkout FETCH_HEAD
234
235 The repo is the stanza following ``fetch`` and the branch is the
236 stanza following that:
237
238 ::
239
240 NOVA_REPO=https://review.openstack.org/p/openstack/nova
241 NOVA_BRANCH=refs/changes/50/5050/1
242
243
Sean Dague07d7e5b2014-11-17 07:10:14 -0500244Installation Directory
245----------------------
246
Ian Wienand815db162015-08-06 10:25:45 +1000247The DevStack install directory is set by the ``DEST`` variable. By
248default it is ``/opt/stack``.
249
250By setting it early in the ``localrc`` section you can reference it in
251later variables. It can be useful to set it even though it is not
252changed from the default value.
Sean M. Collins09e550c2014-10-21 11:40:08 -0400253
254 ::
255
256 DEST=/opt/stack
257
Ian Wienand815db162015-08-06 10:25:45 +1000258Logging
259-------
260
261Enable Logging
262~~~~~~~~~~~~~~
263
264By default ``stack.sh`` output is only written to the console where it
265runs. It can be sent to a file in addition to the console by setting
266``LOGFILE`` to the fully-qualified name of the destination log file. A
267timestamp will be appended to the given filename for each run of
268``stack.sh``.
269
270 ::
271
272 LOGFILE=$DEST/logs/stack.sh.log
273
274Old log files are cleaned automatically if ``LOGDAYS`` is set to the
275number of days of old log files to keep.
276
277 ::
278
279 LOGDAYS=1
280
Sean Dague8b8441f2017-05-02 06:14:11 -0400281Some coloring is used during the DevStack runs to make it easier to
282see what is going on. This can be disabled with::
Ian Wienand815db162015-08-06 10:25:45 +1000283
284 LOG_COLOR=False
285
286Logging the Service Output
287~~~~~~~~~~~~~~~~~~~~~~~~~~
288
Sean Dague8b8441f2017-05-02 06:14:11 -0400289By default, services run under ``systemd`` and are natively logging to
290the systemd journal.
Ian Wienand815db162015-08-06 10:25:45 +1000291
Sean Dague8b8441f2017-05-02 06:14:11 -0400292To query the logs use the ``journalctl`` command, such as::
Ian Wienand815db162015-08-06 10:25:45 +1000293
Sean Dague8b8441f2017-05-02 06:14:11 -0400294 journalctl --unit devstack@*
Ian Wienand815db162015-08-06 10:25:45 +1000295
Sean Dague8b8441f2017-05-02 06:14:11 -0400296More examples can be found in :ref:`journalctl-examples`.
Ian Wienand7d5be292015-08-10 13:39:17 +1000297
Ian Wienanda35391e2015-08-10 13:53:40 +1000298Example Logging Configuration
299~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
300
301For example, non-interactive installs probably wish to save output to
302a file, keep service logs and disable color in the stored files.
303
304 ::
305
306 [[local|localrc]]
307 DEST=/opt/stack/
Ian Wienanda35391e2015-08-10 13:53:40 +1000308 LOGFILE=$LOGDIR/stack.sh.log
309 LOG_COLOR=False
310
Ian Wienand7d5be292015-08-10 13:39:17 +1000311Database Backend
312----------------
313
314Multiple database backends are available. The available databases are defined
315in the lib/databases directory.
Markus Zoellerc30657d2015-11-02 11:27:46 +0100316``mysql`` is the default database, choose a different one by putting the
317following in the ``localrc`` section:
Ian Wienand7d5be292015-08-10 13:39:17 +1000318
319 ::
320
321 disable_service mysql
322 enable_service postgresql
323
Markus Zoellerc30657d2015-11-02 11:27:46 +0100324``mysql`` is the default database.
Ian Wienand7d5be292015-08-10 13:39:17 +1000325
326RPC Backend
327-----------
328
329Support for a RabbitMQ RPC backend is included. Additional RPC
330backends may be available via external plugins. Enabling or disabling
331RabbitMQ is handled via the usual service functions and
332``ENABLED_SERVICES``.
333
334Example disabling RabbitMQ in ``local.conf``:
335
336::
Markus Zoellerc30657d2015-11-02 11:27:46 +0100337
Ian Wienand7d5be292015-08-10 13:39:17 +1000338 disable_service rabbit
339
340
341Apache Frontend
342---------------
343
344The Apache web server can be enabled for wsgi services that support
345being deployed under HTTPD + mod_wsgi. By default, services that
346recommend running under HTTPD + mod_wsgi are deployed under Apache. To
347use an alternative deployment strategy (e.g. eventlet) for services
348that support an alternative to HTTPD + mod_wsgi set
349``ENABLE_HTTPD_MOD_WSGI_SERVICES`` to ``False`` in your
350``local.conf``.
351
352Each service that can be run under HTTPD + mod_wsgi also has an
353override toggle available that can be set in your ``local.conf``.
354
355Keystone is run under Apache with ``mod_wsgi`` by default.
356
357Example (Keystone)
358
359::
360
361 KEYSTONE_USE_MOD_WSGI="True"
362
363Example (Nova):
364
365::
366
367 NOVA_USE_MOD_WSGI="True"
368
369Example (Swift):
370
371::
372
373 SWIFT_USE_MOD_WSGI="True"
374
Oleksii Chuprykova6928102015-06-11 08:56:58 -0400375Example (Heat):
376
377::
378
379 HEAT_USE_MOD_WSGI="True"
380
Ian Wienand7d5be292015-08-10 13:39:17 +1000381
Anton Arefiev651cb1a2015-09-01 10:55:20 +0300382Example (Cinder):
383
384::
385
386 CINDER_USE_MOD_WSGI="True"
387
Ian Wienand7d5be292015-08-10 13:39:17 +1000388
Sean Dague07d7e5b2014-11-17 07:10:14 -0500389Libraries from Git
390------------------
391
Ian Wienand815db162015-08-06 10:25:45 +1000392By default devstack installs OpenStack server components from git,
393however it installs client libraries from released versions on pypi.
394This is appropriate if you are working on server development, but if
395you want to see how an unreleased version of the client affects the
396system you can have devstack install it from upstream, or from local
397git trees by specifying it in ``LIBS_FROM_GIT``. Multiple libraries
398can be specified as a comma separated list.
Sean Dague07d7e5b2014-11-17 07:10:14 -0500399
400 ::
401
402 LIBS_FROM_GIT=python-keystoneclient,oslo.config
403
Marc Koderer46f8cb72016-05-13 09:08:16 +0200404Setting the variable to ``ALL`` will activate the download for all
405libraries.
406
Dean Troyer5686dbc2015-03-09 14:27:51 -0500407Virtual Environments
408--------------------
409
Ian Wienand815db162015-08-06 10:25:45 +1000410Enable the use of Python virtual environments by setting ``USE_VENV``
411to ``True``. This will enable the creation of venvs for each project
412that is defined in the ``PROJECT_VENV`` array.
Dean Troyer5686dbc2015-03-09 14:27:51 -0500413
Ian Wienand815db162015-08-06 10:25:45 +1000414Each entry in the ``PROJECT_VENV`` array contains the directory name
415of a venv to be used for the project. The array index is the project
416name. Multiple projects can use the same venv if desired.
Dean Troyer5686dbc2015-03-09 14:27:51 -0500417
418 ::
419
420 PROJECT_VENV["glance"]=${GLANCE_DIR}.venv
421
Ian Wienand815db162015-08-06 10:25:45 +1000422``ADDITIONAL_VENV_PACKAGES`` is a comma-separated list of additional
423packages to be installed into each venv. Often projects will not have
424certain packages listed in its ``requirements.txt`` file because they
425are 'optional' requirements, i.e. only needed for certain
426configurations. By default, the enabled databases will have their
427Python bindings added when they are enabled.
Dean Troyer5686dbc2015-03-09 14:27:51 -0500428
Ian Wienand815db162015-08-06 10:25:45 +1000429 ::
Sean Dague07d7e5b2014-11-17 07:10:14 -0500430
Ian Wienand815db162015-08-06 10:25:45 +1000431 ADDITIONAL_VENV_PACKAGES="python-foo, python-bar"
Sean M. Collins09e550c2014-10-21 11:40:08 -0400432
Sean M. Collins09e550c2014-10-21 11:40:08 -0400433
434A clean install every time
Sean Dague07d7e5b2014-11-17 07:10:14 -0500435--------------------------
436
Ian Wienand815db162015-08-06 10:25:45 +1000437By default ``stack.sh`` only clones the project repos if they do not
438exist in ``$DEST``. ``stack.sh`` will freshen each repo on each run if
439``RECLONE`` is set to ``yes``. This avoids having to manually remove
440repos in order to get the current branch from ``$GIT_BASE``.
Sean M. Collins09e550c2014-10-21 11:40:08 -0400441
442 ::
443
444 RECLONE=yes
445
Chris Dentebdd9ac2015-03-04 12:35:14 +0000446Upgrade packages installed by pip
447---------------------------------
448
Ian Wienand815db162015-08-06 10:25:45 +1000449By default ``stack.sh`` only installs Python packages if no version is
450currently installed or the current version does not match a specified
451requirement. If ``PIP_UPGRADE`` is set to ``True`` then existing
452required Python packages will be upgraded to the most recent version
453that matches requirements.
Chris Dentebdd9ac2015-03-04 12:35:14 +0000454
455 ::
456
457 PIP_UPGRADE=True
458
John Huaa4693b52015-08-06 13:53:35 +0100459Guest Images
460------------
461
462Images provided in URLS via the comma-separated ``IMAGE_URLS``
463variable will be downloaded and uploaded to glance by DevStack.
464
465Default guest-images are predefined for each type of hypervisor and
466their testing-requirements in ``stack.sh``. Setting
467``DOWNLOAD_DEFAULT_IMAGES=False`` will prevent DevStack downloading
468these default images; in that case, you will want to populate
469``IMAGE_URLS`` with sufficient images to satisfy testing-requirements.
470
471 ::
472
473 DOWNLOAD_DEFAULT_IMAGES=False
474 IMAGE_URLS="http://foo.bar.com/image.qcow,"
475 IMAGE_URLS+="http://foo.bar.com/image2.qcow"
476
Rafael Folcof0131e12015-09-23 12:55:02 -0500477
478Instance Type
479-------------
480
481``DEFAULT_INSTANCE_TYPE`` can be used to configure the default instance
482type. When this parameter is not specified, Devstack creates additional
483micro & nano flavors for really small instances to run Tempest tests.
484
485For guests with larger memory requirements, ``DEFAULT_INSTANCE_TYPE``
486should be specified in the configuration file so Tempest selects the
487default flavors instead.
488
489KVM on Power with QEMU 2.4 requires 512 MB to load the firmware -
490`QEMU 2.4 - PowerPC <http://wiki.qemu.org/ChangeLog/2.4>`__ so users
491running instances on ppc64/ppc64le can choose one of the default
492created flavors as follows:
493
494 ::
495
496 DEFAULT_INSTANCE_TYPE=m1.tiny
497
498
John Davidge21529a52014-06-30 09:55:11 -0400499IP Version
Brian Haley180f5eb2015-06-16 13:14:31 -0400500----------
501
Clay Gerrard148d0e62016-09-01 02:38:06 -0700502``IP_VERSION`` can be used to configure Neutron to create either an
503IPv4, IPv6, or dual-stack self-service project data-network by with
Sean Daguedb48db12016-04-06 08:09:31 -0400504either ``IP_VERSION=4``, ``IP_VERSION=6``, or ``IP_VERSION=4+6``
Clay Gerrard148d0e62016-09-01 02:38:06 -0700505respectively.
John Davidge21529a52014-06-30 09:55:11 -0400506
507 ::
508
Clay Gerrard148d0e62016-09-01 02:38:06 -0700509 IP_VERSION=4+6
John Davidge21529a52014-06-30 09:55:11 -0400510
Ian Wienand815db162015-08-06 10:25:45 +1000511The following optional variables can be used to alter the default IPv6
512behavior:
John Davidge21529a52014-06-30 09:55:11 -0400513
514 ::
515
516 IPV6_RA_MODE=slaac
517 IPV6_ADDRESS_MODE=slaac
Kevin Benton4bfbc292016-11-15 17:26:05 -0800518 IPV6_ADDRS_SAFE_TO_USE=fd$IPV6_GLOBAL_ID::/56
John Davidge21529a52014-06-30 09:55:11 -0400519 IPV6_PRIVATE_NETWORK_GATEWAY=fd$IPV6_GLOBAL_ID::1
520
Kevin Benton4bfbc292016-11-15 17:26:05 -0800521*Note*: ``IPV6_ADDRS_SAFE_TO_USE`` and ``IPV6_PRIVATE_NETWORK_GATEWAY``
522can be configured with any valid IPv6 prefix. The default values make
523use of an auto-generated ``IPV6_GLOBAL_ID`` to comply with RFC4193.
Brian Haley180f5eb2015-06-16 13:14:31 -0400524
Ian Wienand815db162015-08-06 10:25:45 +1000525Service Version
526~~~~~~~~~~~~~~~
527
528DevStack can enable service operation over either IPv4 or IPv6 by
529setting ``SERVICE_IP_VERSION`` to either ``SERVICE_IP_VERSION=4`` or
530``SERVICE_IP_VERSION=6`` respectively.
531
532When set to ``4`` devstack services will open listen sockets on
533``0.0.0.0`` and service endpoints will be registered using ``HOST_IP``
534as the address.
535
536When set to ``6`` devstack services will open listen sockets on ``::``
537and service endpoints will be registered using ``HOST_IPV6`` as the
538address.
539
540The default value for this setting is ``4``. Dual-mode support, for
541example ``4+6`` is not currently supported. ``HOST_IPV6`` can
542optionally be used to alter the default IPv6 address
Brian Haley180f5eb2015-06-16 13:14:31 -0400543
544 ::
545
546 HOST_IPV6=${some_local_ipv6_address}
John Davidge21529a52014-06-30 09:55:11 -0400547
Ian Wienand7d5be292015-08-10 13:39:17 +1000548Multi-node setup
549~~~~~~~~~~~~~~~~
Sean M. Collins09e550c2014-10-21 11:40:08 -0400550
Ian Wienand7d5be292015-08-10 13:39:17 +1000551See the :doc:`multi-node lab guide<guides/multinode-lab>`
Sean M. Collins09e550c2014-10-21 11:40:08 -0400552
Ian Wienand7d5be292015-08-10 13:39:17 +1000553Projects
554--------
Sean M. Collins09e550c2014-10-21 11:40:08 -0400555
Ian Wienand7d5be292015-08-10 13:39:17 +1000556Neutron
557~~~~~~~
Sean M. Collins09e550c2014-10-21 11:40:08 -0400558
Ian Wienand7d5be292015-08-10 13:39:17 +1000559See the :doc:`neutron configuration guide<guides/neutron>` for
560details on configuration of Neutron
Sean M. Collins09e550c2014-10-21 11:40:08 -0400561
Sean M. Collins09e550c2014-10-21 11:40:08 -0400562
Ian Wienand7d5be292015-08-10 13:39:17 +1000563Swift
564~~~~~
565
566Swift is disabled by default. When enabled, it is configured with
567only one replica to avoid being IO/memory intensive on a small
Sean Dague8b8441f2017-05-02 06:14:11 -0400568VM.
Ian Wienand7d5be292015-08-10 13:39:17 +1000569
Markus Zoellerc30657d2015-11-02 11:27:46 +0100570If you would like to enable Swift you can add this to your ``localrc``
Ian Wienand7d5be292015-08-10 13:39:17 +1000571section:
572
573::
574
575 enable_service s-proxy s-object s-container s-account
576
577If you want a minimal Swift install with only Swift and Keystone you
Markus Zoellerc30657d2015-11-02 11:27:46 +0100578can have this instead in your ``localrc`` section:
Ian Wienand7d5be292015-08-10 13:39:17 +1000579
580::
581
582 disable_all_services
583 enable_service key mysql s-proxy s-object s-container s-account
584
585If you only want to do some testing of a real normal swift cluster
586with multiple replicas you can do so by customizing the variable
Markus Zoellerc30657d2015-11-02 11:27:46 +0100587``SWIFT_REPLICAS`` in your ``localrc`` section (usually to 3).
Ian Wienand7d5be292015-08-10 13:39:17 +1000588
Christian Schwede91d22452016-04-12 10:53:46 +0200589You can manually override the ring building to use specific storage
590nodes, for example when you want to test a multinode environment. In
591this case you have to set a space-separated list of IPs in
592``SWIFT_STORAGE_IPS`` in your ``localrc`` section that should be used
593as Swift storage nodes.
594Please note that this does not create a multinode setup, it is only
595used when adding nodes to the Swift rings.
596
597::
598
599 SWIFT_STORAGE_IPS="192.168.1.10 192.168.1.11 192.168.1.12"
600
Ian Wienand7d5be292015-08-10 13:39:17 +1000601Swift S3
602++++++++
603
Markus Zoellerc30657d2015-11-02 11:27:46 +0100604If you are enabling ``swift3`` in ``ENABLED_SERVICES`` DevStack will
Ian Wienand7d5be292015-08-10 13:39:17 +1000605install the swift3 middleware emulation. Swift will be configured to
606act as a S3 endpoint for Keystone so effectively replacing the
Markus Zoellerc30657d2015-11-02 11:27:46 +0100607``nova-objectstore``.
Ian Wienand7d5be292015-08-10 13:39:17 +1000608
Sean Dague8b8441f2017-05-02 06:14:11 -0400609Only Swift proxy server is launched in the systemd system all other
Markus Zoellerc30657d2015-11-02 11:27:46 +0100610services are started in background and managed by ``swift-init`` tool.
Ian Wienand7d5be292015-08-10 13:39:17 +1000611
612Heat
613~~~~
614
Markus Zoellerc30657d2015-11-02 11:27:46 +0100615Heat is disabled by default (see ``stackrc`` file). To enable it
616explicitly you'll need the following settings in your ``localrc``
Ian Wienand7d5be292015-08-10 13:39:17 +1000617section
618
619::
620
621 enable_service heat h-api h-api-cfn h-api-cw h-eng
622
623Heat can also run in standalone mode, and be configured to orchestrate
624on an external OpenStack cloud. To launch only Heat in standalone mode
Markus Zoellerc30657d2015-11-02 11:27:46 +0100625you'll need the following settings in your ``localrc`` section
Ian Wienand7d5be292015-08-10 13:39:17 +1000626
627::
628
629 disable_all_services
630 enable_service rabbit mysql heat h-api h-api-cfn h-api-cw h-eng
631 HEAT_STANDALONE=True
632 KEYSTONE_SERVICE_HOST=...
633 KEYSTONE_AUTH_HOST=...
634
635Tempest
636~~~~~~~
637
638If tempest has been successfully configured, a basic set of smoke
639tests can be run as follows:
640
641::
642
643 $ cd /opt/stack/tempest
644 $ tox -efull tempest.scenario.test_network_basic_ops
645
646By default tempest is downloaded and the config file is generated, but the
647tempest package is not installed in the system's global site-packages (the
648package install includes installing dependences). So tempest won't run
649outside of tox. If you would like to install it add the following to your
650``localrc`` section:
651
652::
653
654 INSTALL_TEMPEST=True
655
656
657Xenserver
658~~~~~~~~~
659
660If you would like to use Xenserver as the hypervisor, please refer to
Markus Zoellerc30657d2015-11-02 11:27:46 +0100661the instructions in ``./tools/xen/README.md``.
Ian Wienand7d5be292015-08-10 13:39:17 +1000662
663Cells
664~~~~~
665
666`Cells <http://wiki.openstack.org/blueprint-nova-compute-cells>`__ is
667an alternative scaling option. To setup a cells environment add the
Markus Zoellerc30657d2015-11-02 11:27:46 +0100668following to your ``localrc`` section:
Ian Wienand7d5be292015-08-10 13:39:17 +1000669
670::
671
672 enable_service n-cell
673
674Be aware that there are some features currently missing in cells, one
675notable one being security groups. The exercises have been patched to
676disable functionality not supported by cells.
677
678Cinder
679~~~~~~
680
681The logical volume group used to hold the Cinder-managed volumes is
Jordan Pittierf5069f32016-11-08 12:10:12 +0100682set by ``VOLUME_GROUP_NAME``, the logical volume name prefix is set with
Ian Wienand7d5be292015-08-10 13:39:17 +1000683``VOLUME_NAME_PREFIX`` and the size of the volume backing file is set
684with ``VOLUME_BACKING_FILE_SIZE``.
685
686 ::
687
Jordan Pittierf5069f32016-11-08 12:10:12 +0100688 VOLUME_GROUP_NAME="stack-volumes"
Ian Wienand7d5be292015-08-10 13:39:17 +1000689 VOLUME_NAME_PREFIX="volume-"
690 VOLUME_BACKING_FILE_SIZE=10250M
691
692
693Keystone
694~~~~~~~~
695
696Multi-Region Setup
697++++++++++++++++++
698
699We want to setup two devstack (RegionOne and RegionTwo) with shared
700keystone (same users and services) and horizon. Keystone and Horizon
701will be located in RegionOne. Full spec is available at:
702`<https://wiki.openstack.org/wiki/Heat/Blueprints/Multi_Region_Support_for_Heat>`__.
703
704In RegionOne:
705
706::
707
708 REGION_NAME=RegionOne
709
710In RegionTwo:
711
712::
henriquetrutaf2126222016-01-05 13:43:18 -0300713
Ian Wienand7d5be292015-08-10 13:39:17 +1000714 disable_service horizon
715 KEYSTONE_SERVICE_HOST=<KEYSTONE_IP_ADDRESS_FROM_REGION_ONE>
716 KEYSTONE_AUTH_HOST=<KEYSTONE_IP_ADDRESS_FROM_REGION_ONE>
717 REGION_NAME=RegionTwo
zhiyuan_cai6f1781f2016-04-07 18:36:46 +0800718 KEYSTONE_REGION_NAME=RegionOne
719
720In the devstack for RegionOne, we set REGION_NAME as RegionOne, so region of
721the services started in this devstack are registered as RegionOne. In devstack
722for RegionTwo, similarly, we set REGION_NAME as RegionTwo since we want
723services started in this devstack to be registered in RegionTwo. But Keystone
724service is started and registered in RegionOne, not RegionTwo, so we use
725KEYSTONE_REGION_NAME to specify the region of Keystone service.
726KEYSTONE_REGION_NAME has a default value the same as REGION_NAME thus we omit
727it in the configuration of RegionOne.
henriquetrutaf2126222016-01-05 13:43:18 -0300728
729Disabling Identity API v2
730+++++++++++++++++++++++++
731
732The Identity API v2 is deprecated as of Mitaka and it is recommended to only
733use the v3 API. It is possible to setup keystone without v2 API, by doing:
734
735::
736
737 ENABLE_IDENTITY_V2=False
Ian Wienand7cd16ce2016-04-08 09:40:56 +1000738
739Exercises
740~~~~~~~~~
741
742``exerciserc`` is used to configure settings for the exercise scripts.
743The values shown below are the default values. These can all be
744overridden by setting them in the ``localrc`` section.
745
746* Max time to wait while vm goes from build to active state
747
748 ::
749
750 ACTIVE_TIMEOUT==30
751
752* Max time to wait for proper IP association and dis-association.
753
754 ::
755
756 ASSOCIATE_TIMEOUT=15
757
758* Max time till the vm is bootable
759
760 ::
761
762 BOOT_TIMEOUT=30
763
764* Max time from run instance command until it is running
765
766 ::
767
768 RUNNING_TIMEOUT=$(($BOOT_TIMEOUT + $ACTIVE_TIMEOUT))
769
770* Max time to wait for a vm to terminate
771
772 ::
773
774 TERMINATE_TIMEOUT=30