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