Dean Troyer | 0986a7b | 2014-10-29 22:08:13 -0500 | [diff] [blame] | 1 | === |
| 2 | FAQ |
| 3 | === |
Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 4 | |
| 5 | - `General Questions <#general>`__ |
| 6 | - `Operation and Configuration <#ops_conf>`__ |
| 7 | - `Miscellaneous <#misc>`__ |
| 8 | |
| 9 | General Questions |
Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 10 | ================= |
Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 11 | |
| 12 | Q: Can I use DevStack for production? |
| 13 | A: No. We mean it. Really. DevStack makes some implementation |
| 14 | choices that are not appropriate for production deployments. We |
| 15 | warned you! |
| 16 | Q: Then why selinux in enforcing mode? |
| 17 | A: That is the default on current Fedora and RHEL releases. DevStack |
| 18 | has (rightly so) a bad reputation for its security practices; it has |
| 19 | always been meant as a development tool first and system integration |
| 20 | later. This is changing as the security issues around OpenStack's |
| 21 | use of root (for example) have been tightened and developers need to |
| 22 | be better equipped to work in these environments. ``stack.sh``'s use |
| 23 | of root is primarily to support the activities that would be handled |
| 24 | by packaging in "real" deployments. To remove additional protections |
| 25 | that will be desired/required in production would be a step |
| 26 | backward. |
Attila Fazekas | 1f316be | 2015-01-26 16:39:57 +0100 | [diff] [blame] | 27 | Q: But selinux is disabled in RHEL! |
Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 28 | A: Today it is, yes. That is a specific exception that certain |
| 29 | DevStack contributors fought strongly against. The primary reason it |
| 30 | was allowed was to support using RHEL6 as the Python 2.6 test |
| 31 | platform and that took priority time-wise. This will not be the case |
| 32 | with RHEL 7. |
| 33 | Q: Why a shell script, why not chef/puppet/... |
| 34 | A: The script is meant to be read by humans (as well as ran by |
| 35 | computers); it is the primary documentation after all. Using a |
| 36 | recipe system requires everyone to agree and understand chef or |
| 37 | puppet. |
| 38 | Q: Why not use Crowbar? |
| 39 | A: DevStack is optimized for documentation & developers. As some of |
| 40 | us use `Crowbar <https://github.com/dellcloudedge/crowbar>`__ for |
| 41 | production deployments, we hope developers documenting how they |
| 42 | setup systems for new features supports projects like Crowbar. |
| 43 | Q: I'd like to help! |
| 44 | A: That isn't a question, but please do! The source for DevStack is |
| 45 | at |
| 46 | `git.openstack.org <https://git.openstack.org/cgit/openstack-dev/devstack>`__ |
| 47 | and bug reports go to |
| 48 | `LaunchPad <http://bugs.launchpad.net/devstack/>`__. Contributions |
Jeremy Stanley | 3eeed23 | 2014-12-05 03:30:41 +0000 | [diff] [blame] | 49 | follow the usual process as described in the `developer |
| 50 | guide <http://docs.openstack.org/infra/manual/developers.html>`__. This Sphinx |
Dean Troyer | ea3cdfa | 2014-11-08 08:29:16 -0600 | [diff] [blame] | 51 | documentation is housed in the doc directory. |
Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 52 | Q: Why not use packages? |
| 53 | A: Unlike packages, DevStack leaves your cloud ready to develop - |
| 54 | checkouts of the code and services running in screen. However, many |
| 55 | people are doing the hard work of packaging and recipes for |
| 56 | production deployments. We hope this script serves as a way to |
| 57 | communicate configuration changes between developers and packagers. |
| 58 | Q: Why isn't $MY\_FAVORITE\_DISTRO supported? |
| 59 | A: DevStack is meant for developers and those who want to see how |
| 60 | OpenStack really works. DevStack is known to run on the |
| 61 | distro/release combinations listed in ``README.md``. DevStack is |
| 62 | only supported on releases other than those documented in |
| 63 | ``README.md`` on a best-effort basis. |
| 64 | Q: What about Fedora/RHEL/CentOS? |
| 65 | A: Fedora and CentOS/RHEL are supported via rpm dependency files and |
| 66 | specific checks in ``stack.sh``. Support will follow the pattern set |
| 67 | with the Ubuntu testing, i.e. only a single release of the distro |
| 68 | will receive regular testing, others will be handled on a |
| 69 | best-effort basis. |
| 70 | Q: Are there any differences between Ubuntu and Fedora support? |
| 71 | A: Neutron is not fully supported prior to Fedora 18 due lack of |
| 72 | OpenVSwitch packages. |
Dean Troyer | d97ee30 | 2015-02-04 12:35:39 -0600 | [diff] [blame] | 73 | Q: Why can't I use another shell? |
| 74 | A: DevStack now uses some specific bash-ism that require Bash 4, such |
| 75 | as associative arrays. Simple compatibility patches have been accepted |
| 76 | in the past when they are not complex, at this point no additional |
| 77 | compatibility patches will be considered except for shells matching |
| 78 | the array functionality as it is very ingrained in the repo and project |
| 79 | management. |
| 80 | Q: But, but, can't I test on OS/X? |
| 81 | A: Yes, even you, core developer who complained about this, needs to |
| 82 | install bash 4 via homebrew to keep running tests on OS/X. Get a Real |
Joe Gordon | 6b9deba | 2015-02-18 11:24:31 -0800 | [diff] [blame] | 83 | Operating System. (For most of you who don't know, I am referring to |
Dean Troyer | d97ee30 | 2015-02-04 12:35:39 -0600 | [diff] [blame] | 84 | myself.) |
Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 85 | |
| 86 | Operation and Configuration |
Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 87 | =========================== |
Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 88 | |
| 89 | Q: Can DevStack handle a multi-node installation? |
| 90 | A: Indirectly, yes. You run DevStack on each node with the |
| 91 | appropriate configuration in ``local.conf``. The primary |
| 92 | considerations are turning off the services not required on the |
| 93 | secondary nodes, making sure the passwords match and setting the |
| 94 | various API URLs to the right place. |
| 95 | Q: How can I document the environment that DevStack is using? |
| 96 | A: DevStack includes a script (``tools/info.sh``) that gathers the |
| 97 | versions of the relevant installed apt packages, pip packages and |
| 98 | git repos. This is a good way to verify what Python modules are |
| 99 | installed. |
| 100 | Q: How do I turn off a service that is enabled by default? |
| 101 | A: Services can be turned off by adding ``disable_service xxx`` to |
| 102 | ``local.conf`` (using ``n-vol`` in this example): |
| 103 | |
| 104 | :: |
| 105 | |
| 106 | disable_service n-vol |
| 107 | |
| 108 | Q: Is enabling a service that defaults to off done with the reverse of the above? |
| 109 | A: Of course! |
| 110 | |
| 111 | :: |
| 112 | |
| 113 | enable_service qpid |
| 114 | |
| 115 | Q: How do I run a specific OpenStack milestone? |
| 116 | A: OpenStack milestones have tags set in the git repo. Set the appropriate tag in the ``*_BRANCH`` variables in ``local.conf``. Swift is on its own release schedule so pick a tag in the Swift repo that is just before the milestone release. For example: |
| 117 | |
| 118 | :: |
| 119 | |
| 120 | [[local|localrc]] |
Joe Gordon | 6b9deba | 2015-02-18 11:24:31 -0800 | [diff] [blame] | 121 | GLANCE_BRANCH=stable/juno |
| 122 | HORIZON_BRANCH=stable/juno |
| 123 | KEYSTONE_BRANCH=stable/juno |
| 124 | NOVA_BRANCH=stable/juno |
| 125 | GLANCE_BRANCH=stable/juno |
| 126 | NEUTRON_BRANCH=stable/juno |
| 127 | SWIFT_BRANCH=2.2.1 |
Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 128 | |
| 129 | Q: Why not use [STRIKEOUT:``tools/pip-requires``]\ ``requirements.txt`` to grab project dependencies? |
| 130 | [STRIKEOUT:The majority of deployments will use packages to install |
| 131 | OpenStack that will have distro-based packages as dependencies. |
| 132 | DevStack installs as many of these Python packages as possible to |
saradpatel | 933827c | 2014-12-19 12:09:05 +0000 | [diff] [blame] | 133 | mimic the expected production environment.] Certain Linux |
Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 134 | distributions have a 'lack of workaround' in their Python |
| 135 | configurations that installs vendor packaged Python modules and |
| 136 | pip-installed modules to the SAME DIRECTORY TREE. This is causing |
| 137 | heartache and moving us in the direction of installing more modules |
| 138 | from PyPI than vendor packages. However, that is only being done as |
| 139 | necessary as the packaging needs to catch up to the development |
| 140 | cycle anyway so this is kept to a minimum. |
| 141 | Q: What can I do about RabbitMQ not wanting to start on my fresh new VM? |
| 142 | A: This is often caused by ``erlang`` not being happy with the |
| 143 | hostname resolving to a reachable IP address. Make sure your |
| 144 | hostname resolves to a working IP address; setting it to 127.0.0.1 |
| 145 | in ``/etc/hosts`` is often good enough for a single-node |
| 146 | installation. And in an extreme case, use ``clean.sh`` to eradicate |
| 147 | it and try again. |
| 148 | Q: How can I set up Heat in stand-alone configuration? |
| 149 | A: Configure ``local.conf`` thusly: |
| 150 | |
| 151 | :: |
| 152 | |
| 153 | [[local|localrc]] |
| 154 | HEAT_STANDALONE=True |
| 155 | ENABLED_SERVICES=rabbit,mysql,heat,h-api,h-api-cfn,h-api-cw,h-eng |
| 156 | KEYSTONE_SERVICE_HOST=<keystone-host> |
| 157 | KEYSTONE_AUTH_HOST=<keystone-host> |
| 158 | |
| 159 | Q: Why are my configuration changes ignored? |
| 160 | A: You may have run into the package prerequisite installation |
| 161 | timeout. ``tools/install_prereqs.sh`` has a timer that skips the |
| 162 | package installation checks if it was run within the last |
| 163 | ``PREREQ_RERUN_HOURS`` hours (default is 2). To override this, set |
| 164 | ``FORCE_PREREQ=1`` and the package checks will never be skipped. |
| 165 | |
| 166 | Miscellaneous |
Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 167 | ============= |
Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 168 | |
| 169 | Q: ``tools/fixup_stuff.sh`` is broken and shouldn't 'fix' just one version of packages. |
| 170 | A: [Another not-a-question] No it isn't. Stuff in there is to |
| 171 | correct problems in an environment that need to be fixed elsewhere |
| 172 | or may/will be fixed in a future release. In the case of |
| 173 | ``httplib2`` and ``prettytable`` specific problems with specific |
| 174 | versions are being worked around. If later releases have those |
| 175 | problems than we'll add them to the script. Knowing about the broken |
| 176 | future releases is valuable rather than polling to see if it has |
| 177 | been fixed. |