blob: fd9c736736d9678d94cf8119d0432cecadaebea3 [file] [log] [blame]
Dean Troyer0986a7b2014-10-29 22:08:13 -05001===
2FAQ
3===
Sean M. Collins09e550c2014-10-21 11:40:08 -04004
5- `General Questions <#general>`__
6- `Operation and Configuration <#ops_conf>`__
7- `Miscellaneous <#misc>`__
8
9General Questions
Sean Dague32930462014-11-18 06:51:16 -050010=================
Sean M. Collins09e550c2014-10-21 11:40:08 -040011
12Q: 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!
16Q: 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 Fazekas1f316be2015-01-26 16:39:57 +010027Q: But selinux is disabled in RHEL!
Sean M. Collins09e550c2014-10-21 11:40:08 -040028 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.
33Q: 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.
38Q: 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.
43Q: 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 Stanley3eeed232014-12-05 03:30:41 +000049 follow the usual process as described in the `developer
50 guide <http://docs.openstack.org/infra/manual/developers.html>`__. This Sphinx
Dean Troyerea3cdfa2014-11-08 08:29:16 -060051 documentation is housed in the doc directory.
Sean M. Collins09e550c2014-10-21 11:40:08 -040052Q: 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.
58Q: 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.
64Q: 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.
70Q: 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.
Sean M. Collins09e550c2014-10-21 11:40:08 -040073
74Operation and Configuration
Sean Dague32930462014-11-18 06:51:16 -050075===========================
Sean M. Collins09e550c2014-10-21 11:40:08 -040076
77Q: Can DevStack handle a multi-node installation?
78 A: Indirectly, yes. You run DevStack on each node with the
79 appropriate configuration in ``local.conf``. The primary
80 considerations are turning off the services not required on the
81 secondary nodes, making sure the passwords match and setting the
82 various API URLs to the right place.
83Q: How can I document the environment that DevStack is using?
84 A: DevStack includes a script (``tools/info.sh``) that gathers the
85 versions of the relevant installed apt packages, pip packages and
86 git repos. This is a good way to verify what Python modules are
87 installed.
88Q: How do I turn off a service that is enabled by default?
89 A: Services can be turned off by adding ``disable_service xxx`` to
90 ``local.conf`` (using ``n-vol`` in this example):
91
92 ::
93
94 disable_service n-vol
95
96Q: Is enabling a service that defaults to off done with the reverse of the above?
97 A: Of course!
98
99 ::
100
101 enable_service qpid
102
103Q: How do I run a specific OpenStack milestone?
104 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:
105
106 ::
107
108 [[local|localrc]]
109 GLANCE_BRANCH=stable/grizzly
110 HORIZON_BRANCH=stable/grizzly
111 KEYSTONE_BRANCH=stable/grizzly
112 NOVA_BRANCH=stable/grizzly
113 GLANCE_BRANCH=stable/grizzly
114 NEUTRON_BRANCH=stable/grizzly
115 SWIFT_BRANCH=1.10.0
116
117Q: Why not use [STRIKEOUT:``tools/pip-requires``]\ ``requirements.txt`` to grab project dependencies?
118 [STRIKEOUT:The majority of deployments will use packages to install
119 OpenStack that will have distro-based packages as dependencies.
120 DevStack installs as many of these Python packages as possible to
saradpatel933827c2014-12-19 12:09:05 +0000121 mimic the expected production environment.] Certain Linux
Sean M. Collins09e550c2014-10-21 11:40:08 -0400122 distributions have a 'lack of workaround' in their Python
123 configurations that installs vendor packaged Python modules and
124 pip-installed modules to the SAME DIRECTORY TREE. This is causing
125 heartache and moving us in the direction of installing more modules
126 from PyPI than vendor packages. However, that is only being done as
127 necessary as the packaging needs to catch up to the development
128 cycle anyway so this is kept to a minimum.
129Q: What can I do about RabbitMQ not wanting to start on my fresh new VM?
130 A: This is often caused by ``erlang`` not being happy with the
131 hostname resolving to a reachable IP address. Make sure your
132 hostname resolves to a working IP address; setting it to 127.0.0.1
133 in ``/etc/hosts`` is often good enough for a single-node
134 installation. And in an extreme case, use ``clean.sh`` to eradicate
135 it and try again.
136Q: How can I set up Heat in stand-alone configuration?
137 A: Configure ``local.conf`` thusly:
138
139 ::
140
141 [[local|localrc]]
142 HEAT_STANDALONE=True
143 ENABLED_SERVICES=rabbit,mysql,heat,h-api,h-api-cfn,h-api-cw,h-eng
144 KEYSTONE_SERVICE_HOST=<keystone-host>
145 KEYSTONE_AUTH_HOST=<keystone-host>
146
147Q: Why are my configuration changes ignored?
148 A: You may have run into the package prerequisite installation
149 timeout. ``tools/install_prereqs.sh`` has a timer that skips the
150 package installation checks if it was run within the last
151 ``PREREQ_RERUN_HOURS`` hours (default is 2). To override this, set
152 ``FORCE_PREREQ=1`` and the package checks will never be skipped.
153
154Miscellaneous
Sean Dague32930462014-11-18 06:51:16 -0500155=============
Sean M. Collins09e550c2014-10-21 11:40:08 -0400156
157Q: ``tools/fixup_stuff.sh`` is broken and shouldn't 'fix' just one version of packages.
158 A: [Another not-a-question] No it isn't. Stuff in there is to
159 correct problems in an environment that need to be fixed elsewhere
160 or may/will be fixed in a future release. In the case of
161 ``httplib2`` and ``prettytable`` specific problems with specific
162 versions are being worked around. If later releases have those
163 problems than we'll add them to the script. Knowing about the broken
164 future releases is valuable rather than polling to see if it has
165 been fixed.