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