| ... | ... |
@@ -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 |