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