| DevStack is a set of scripts and utilities to quickly deploy an OpenStack cloud |
| from git source trees. |
| |
| Goals |
| ===== |
| |
| * To quickly build dev OpenStack environments in a clean Ubuntu or RockyLinux |
| environment |
| * To describe working configurations of OpenStack (which code branches |
| work together? what do config files look like for those branches?) |
| * To make it easier for developers to dive into OpenStack so that they can |
| productively contribute without having to understand every part of the |
| system at once |
| * To make it easy to prototype cross-project features |
| * To provide an environment for the OpenStack CI testing on every commit |
| to the projects |
| |
| Read more at https://docs.openstack.org/devstack/latest |
| |
| IMPORTANT: Be sure to carefully read `stack.sh` and any other scripts you |
| execute before you run them, as they install software and will alter your |
| networking configuration. We strongly recommend that you run `stack.sh` |
| in a clean and disposable vm when you are first getting started. |
| |
| Versions |
| ======== |
| |
| The DevStack master branch generally points to trunk versions of OpenStack |
| components. For older, stable versions, look for branches named |
| stable/[release] in the DevStack repo. For example, you can do the |
| following to create a Zed OpenStack cloud:: |
| |
| git checkout stable/zed |
| ./stack.sh |
| |
| You can also pick specific OpenStack project releases by setting the appropriate |
| `*_BRANCH` variables in the ``localrc`` section of `local.conf` (look in |
| `stackrc` for the default set). Usually just before a release there will be |
| milestone-proposed branches that need to be tested:: |
| |
| GLANCE_REPO=https://opendev.org/openstack/glance.git |
| GLANCE_BRANCH=milestone-proposed |
| |
| Start A Dev Cloud |
| ================= |
| |
| Installing in a dedicated disposable VM is safer than installing on your |
| dev machine! Plus you can pick one of the supported Linux distros for |
| your VM. To start a dev cloud run the following NOT AS ROOT (see |
| **DevStack Execution Environment** below for more on user accounts): |
| |
| ./stack.sh |
| |
| When the script finishes executing, you should be able to access OpenStack |
| endpoints, like so: |
| |
| * Horizon: http://myhost/ |
| * Keystone: http://myhost/identity/v3/ |
| |
| We also provide an environment file that you can use to interact with your |
| cloud via CLI:: |
| |
| # source openrc file to load your environment with OpenStack CLI creds |
| . openrc |
| # list instances |
| openstack server list |
| |
| DevStack Execution Environment |
| ============================== |
| |
| DevStack runs rampant over the system it runs on, installing things and |
| uninstalling other things. Running this on a system you care about is a recipe |
| for disappointment, or worse. Alas, we're all in the virtualization business |
| here, so run it in a VM. And take advantage of the snapshot capabilities |
| of your hypervisor of choice to reduce testing cycle times. You might even save |
| enough time to write one more feature before the next feature freeze... |
| |
| ``stack.sh`` needs to have root access for a lot of tasks, but uses |
| ``sudo`` for all of those tasks. However, it needs to be not-root for |
| most of its work and for all of the OpenStack services. ``stack.sh`` |
| specifically does not run if started as root. |
| |
| DevStack will not automatically create the user, but provides a helper |
| script in ``tools/create-stack-user.sh``. Run that (as root!) or just |
| check it out to see what DevStack's expectations are for the account |
| it runs under. Many people simply use their usual login (the default |
| 'ubuntu' login on a UEC image for example). |
| |
| Customizing |
| =========== |
| |
| DevStack can be extensively configured via the configuration file |
| `local.conf`. It is likely that you will need to provide and modify |
| this file if you want anything other than the most basic setup. Start |
| by reading the `configuration guide |
| <https://docs.openstack.org/devstack/latest/configuration.html>`_ |
| for details of the configuration file and the many available options. |