#883723 openstack-deploy: incomplete, undocumented

#883723#5
Date:
2017-12-06 20:24:57 UTC
From:
To:
After running "openstack-deploy all-in-one", I find that I do have
something resembling a working openstack installation. Thanks for that!

Unfortunately, however, after all that has happened, one sits there with
a "now what" feeling:

- The installation asks for a number of things. What do these things
  mean? (just hitting "enter" to everything *seems* to work, except for
  the "keystone endpoint IP, for which I just entered 127.0.0.1 in this
  test environment).
- Something is running, but where? (localhost:80, it turns out, with
  non-SSL HTTP redirected to its SSL version)
- After fiddling with apache SSL settings so that those work (this was
  on a pristine VM to test with), I need to log on. What with? (the
  value of RC_KEYSTONE_ADMINPASS in /root/osinstallrc, it turns out)

I realize that the goal of openstack-deploy is probably to support
openstack-tempest-ci rather than to support users; but since it's
packaged in Debian, and since it seems to have several modes, all of
which should support larger installations too, it seems like a prime
candidate for "look at this if you want to build your own cloud"

If only it were a bit better documented.

#883723#10
Date:
2017-12-07 09:03:57 UTC
From:
To:
Hi Wouter,

Yes, this was the initial goal, but no, after you've run the script, you
*don't* have a working installation. What openstack-deploy does is
*only* installing packages using preseeding, but that's unfortunately
not enough to have something that works.

For example, the networking setup is *not* performed by this operation,
neither Cinder is installed or configured. Within my test setup, this is
done by the openstack-deploy-proxy-network script. I would strongly
advise for reading this script before using it. It also setups Neutron
using openvswitch, which is fine for a small deployment, but wont scale
past 10 nodes (too many GRE tunnels is very CPU intensive).

Another goal of the openstack-deploy script is to provide a working
preseed library, which can be re-used. That goal, IMO, is fully reached.
See /usr/share/openstack-deploy/preseed-lib. However, it would need 2
improvements: 1/ support more OpenStack services, not just the core
ones. 2/ get improvement for supporting newer debconf preseeding (it
currently uses pre-jessie way, which still works, but should be updated).

Most questions should be answered with the default, which is why the
openstack-deploy script has a --non-interactive optional parameter. In
Stretch (if that's what you're using), the only small issue with the
default is the name of the MySQL server. It should in fact be
mariadb-server. Probably you've found this out by yourself.

The default with the Debian OpenStack packages is to *not* use SSL. The
reason is, mostly everyone uses an SSL terminator such as HAProxy to
perform the SSL job. Under such environment, you'd just setup HAProxy to
do the SSL, and modify the API endpoints to publish SSL in the Keystone
service catalog.
contains all the login credentials. What you should do is either
copy/past the content of this script in your .bashrc, or simply source
it manually on the shell. Then you can use the openstack command line tools.

The initial goal of the /root/osinstallrc file, is to:
1/ Cache every answer that have been key-ed in.
2/ Be useful to transporting one's answer from one server to another
over scp, so that we get a full cluster provisioning.

While 1/ works already very well, 2/ isn't implemented yet, even though
the mechanism should work quite well.

That is correct.

I would love to transform this script to support multi-node installation
and be somehow useful for Debian users directly. But I have to admit it
didn't reach that point yet.

I unfortunately don't think some documentation could be useful until the
script can support multi-node setup, and allow a fully working
configuration for a running cloud, as per above. I would very much
appreciate contribution toward this goal. Remember other operating
system are taking advantage of full teams working on OpenStack, while
I'm nearly alone (with very useful contribs from Onovy, especially on
swift). I clearly lack time to make these scripts useful enough.
However, it's shell scripting, it's easy to understand and contribute.

Cheers,

Thomas Goirand (zigo)

#883723#15
Date:
2017-12-07 10:03:38 UTC
From:
To:
Control: severity -1 normal
Control: retitle -1 openstack-deploy: incomplete, undocumented

Oh, okay. I did say "resembling", mostly because I hadn't had a chance
of testing it out yet, in much detail.

That's possibly also something that should be documented. The script
already does a great deal and gets you partway there; it's fine if that
doesn't yet do everything, but then at least a hint in the documentation
as to what it doesn't do yet in some reasonable detail, with a pointer to
the upstream bits of documentation that should be followed, would be
useful.

Right.

This, too, sounds like something that might need to be documented.

Right.

Right, yes, I saw that. But my point is that it should be documented
somehow/somewhere what the meaning of all those questions is. What
happens if I enter something else?

For the generated passwords, this is rather obvious, but not for all of
the asked questions.

Yes.

I have. Even so, just accepting the default does work, due to mariadb
metapackages doing the right thing.

Actually, after running "openstack-deploy all-in-one" on a pristine
Debian system (installed from d-i, "apt install openstack-deploy",
running "openstack-deploy all-in-one") and accepting the defaults (apart
from the keystone endpoint that doesn't have a default, as per above), I
found that the openstack-dashboard-ssl-redirect.conf and
openstack-dashboard-ssl.conf apache2 sites were enabled.

I think this makes sense, but it didn't work for my setup; however, this
is likely to be because reaching my openstack test VM's webinterface
required me to use an ssh jumphost and do a few "interesting" things.

(additionally, the default configuration doesn't seem to allow
connecting to the dashboard from a remote system. I'm not sure yet
whether that's me or whether the configuration simply needs to be
updated)

[...]

Right.

I had suspected that it would already, but I can understand that
implementing that is not trivial.

Fair enough.

I have to disagree here.

For the simple case of "let me install things and see how it works",
having an all-in-one setup working *is* a useful thing. For people who
simply want to test and play with things, documentation is very very
useful.

Even in its current state, where openstack-deploy gets you part of the
way there, but not completely, I think it can be useful for such users,
provided it's clear to them what they get and what they don't get, what
they may want to add if they want more, and how they should do so --
even if that's not in full howto-style detail.

People who will be implementing a large setup (say, dozens of nodes or
more) should already be expected read up on openstack and all the
options that exist before they go ahead and install things, so the
openstack-deploy script doesn't necessarily need to cater to them (at
least not in a first implementation). However, if the all-in-one case
works really really well, that would go a long way towards enabling
people to understand openstack better, and would likely net you some
more interested contributors.

Having said that, I completely understand that it's work, and somebody
needs to do it.

I would love to be able to contribute, but at this point in time I can
only point out holes in the documentation from a newbie's POV. The
openstack-deploy run that triggered this bug report was my first attempt
at learning how Openstack works...

As a first and obvious step, it might be useful if the questions that
are asked by openstack-deploy were a bit more self-documenting; e.g.,
rather than just saying "please enter value X [default xyz]", do
something along the lines of "we need value X for purpose foo which will
be used by the neutron, keystone, and rabbitmq services. For more
infomation, see <URL>.\nValue X [default xyz]". This doesn't need to be
very complicated or large; the main point is that it should allow a user
who goes "wtf is this" to understand what the point is to the question,
and where to look for further information.

The documentation doesn't need to complete, but it should be enough to
get started.

[...]

#883723#24
Date:
2017-12-07 11:39:26 UTC
From:
To:
Looking at things more closely, I find that:

- The installed services are a strict superset of the "compute starter
  kit" as defined on
https://www.openstack.org/software/sample-configs#compute-starter-kit
  (which contains nova, glance, keystone, and neutron), and therefore
  should already have basic functionality of the "let's see how this
  works" type.
- Uploading the image downloaded from
http://cdimage.debian.org/cdimage/openstack/current/debian-9.2.2-20171105-openstack-amd64.qcow2
  through the webinterface seems to work.
- Creating a network through the webinterface seems to work.
- Creating a "flavor" through the webinterface seems to work.
- After doing all that, I can go through the "Launch instance" wizard in
  the webinterface. It accepts my choices; but when it gets around to
  actually trying to spawn the VM, the machine becomes unresponsive.
  Once it starts being responsive again, it says "No valid host was
  found. There are not enough hosts available." It's not clear to my
  what exactly went wrong; this may be fixed by some configuration, or
  it may not. At this point, I can't remove the instance anymore either,
  with a "CSRF token missing or incorrect" error message.

It feels like the system is fairly close to a working setup, though.

#883723#29
Date:
2017-12-07 17:12:35 UTC
From:
To:
I have extensively contributed to the upstream documentation. There's
even 2 install guide that you'll find for OpenStack in Newton:

https://docs.openstack.org/newton/install-guide-debconf/
https://docs.openstack.org/newton/install-guide-debian/

What you can do is simply run openstack-deploy, then read the steps of
the install-guide. Most of the steps will be already performed by the
script, like installing the package, registering endpoint in the
keystone catalog, setting the keystone_authtoken and configuring the db.

Unfortunately, because the doc people appeared unstaff after rackspace
laid-off a lot of its personnel, this is the last install-guide for
OpenStack. It's quite fortunate that it is also the best install-guide
for Debian, where I could check everything was working as expected. So I
very much recommend this reading.

In theory, I would agree. Though I found that contributing to the doc
upstream was a much better way to address the documentation.

Oh good! :)

Installing horizon without any preseeding just work too, though you end
up having horizon installed under /horizon instead of the root of the
web server, which is Debian policy compliant. You can just
dpkg-reconfigure openstack-dashboard-apache if that's what you prefer.

I believe that's just you, but I may be wrong! :)

Now that I gave you a pointer to upstream install-guide for Debian, do
you still have the same view on this?

I'd like to reach that point where just running the openstack-deploy
script would be enough. Though there's one par that can't ever be done
automatically: networking. Indeed, it really depend on your
configuration and topology. I've been thinking about this for a long
time and can't think it out.

I very much appreciate your feedback already. Thanks !

I see your point. I'll try to write something down. I in fact already
did some of this as a blog entry to explain openstack-tempest-ci, which
may be useful for newbies to just try the Debian OpenStack all-in-one
version within a KVM machine. The only issue is that that machine has to
be quite big (at least 24 GB of RAM).

Thanks again for your feedback,
Cheers,

Thomas Goirand (zigo)

#883723#34
Date:
2017-12-07 18:38:23 UTC
From:
To:
Missed that. A simple pointer to that documentation from the script (or
even the wiki) would have gone a *long* way towards helping me out on
things here :-)

Right.

Heh. Will do, thanks :-)

For clarity, I'm not saying that you need to have full documentation in
openstack-deploy itself. It makes perfect sense for it to point to the
relevant upstream documentation. However, it doesn't even do that
today. It just runs, magic happens, and I can see that things are
running; but it doesn't tell me what or where, and it doesn't tell me
what the next steps are. After openstack-deploy ran, there are somewhere
between 10 and 20 listening ports on localhost, with no indication of
where to go next.

It doesn't need to be much, but it could be more than there is today :-)

Right :)

No, it is not :-)

Actually, it turns out that if DEBUG is enabled in the django
configuration, which appears to be the default, then only localhost
connections are allowed. So, no, not me ;)

I'll answer this bit later (haven't yet had the time to look at this in
detail)

IMHO, that's fine. Just document the choices which the user has to make,
how to make them, and, crucially, what choices have already been made
for the user by the openstack-deploy script.

Honestly, I think openstack-deploy would be massively more usable if it
just had some output at the end saying something along the lines of...
--- Success! The following services have been installed and fully configured: - U - V The following services have been installed, but require more configuration before they can be properly used: - W - X You may be interested in the following additional services, which are also packaged for Debian but have not been installed: - Y - Z For more information on how to configure these services, please see the upstream documentation at <url>. The configuration that was generated by this script (including generated passwords) can be found in the file '/root/openrc.sh'. --- ...because it gives the user immediate feedback of the changes that were made, and where to look for further information. (I'm not that sure about the "additional services" bit of the above, since that might end up being a slippery slope -- but the first two, surely, should be doable). As everyone knows, documentation is only read if all else fails, so you need to force people to look at it by throwing it in their face even when they didn't ask for it ;-) Oh dear. That's about the amount of memory on that particular bare metal machine :-) Sure.
#883723#39
Date:
2017-12-07 20:43:12 UTC
From:
To:
The "No valid host was found" should be interpreted as "no compute host
is working, I can't start the VM". Since you have only one compute node,
it means that host doesn't work.

Have you made sure to replace nova-compute-kvm by nova-compute-qemu,
since you're in a VM? After doing so, make sure to restart nova-compute.

This is a known bug in Horizon in Stretch, due to an incompatibility
with Django 1.10. It has been fixed since, but I haven't investigated in
which commit, so I could backport it.

Instead of selecting the instance with the checkbox, just click on the
dropdown and click on terminate. This should work.

Once you've fixed the nova issue, I'm quite sure you'll have trouble
with the networking (unless you've followed the install guide to make
your networking setup). In any case, just look in your
/var/log/{nova,neutron}/*.log when starting the VM. And try without
horizon, with something like this:

openstack server create --image \
	$(openstack image list --format=csv | q -d , \
	-H 'SELECT ID FROM -') --flavor $(openstack flavor \
	list --format=csv | q -d , -H \
	'SELECT ID FROM - WHERE `Name`="m1.tiny"') \
	--nic net-id=$(openstack network list --format=csv \
	| q -d , -H \
	'SELECT ID FROM - WHERE `Name`="demo-net"') \
	test-server.debian.net

(you can adapt of course, with network name, image name, and flavor)

Cheers,

Thomas Goirand (zigo)

#883723#44
Date:
2017-12-08 08:03:24 UTC
From:
To:
Well, on the bare metal I do have...

root@latin ~ # cat /sys/module/kvm_intel/parameters/nested
Y

...so I was under the impression that that should just work? I now see
that you also need to configure the host VM to have particular CPU bits
set, so maybe that was my mistake.

Anyway, since this is just meant for a test setup it's not critical, so
if my new attempt doesn't work I'll try the qemu thing.

Well, between this and the above and a few other mistakes I'd made, I
decided that starting over would be a good idea, so I destroyed the
containing VM and started over from scratch. So I can't test this right
now, but I think I couldn't do "terminate" since the VM wasn't
running...

I did have some network up, but I don't know whether it worked :-)

[...]

#883723#49
Date:
2018-09-20 11:06:56 UTC
From:
To:
Sorry for the long delay. This project got set on the backburner a bit,
because plans had changed at a customer for whom I was planning to look
into this. I'm still interested however, so, I've been trying again
recently, and found that the reason keystone has no default is because
openstack-deploy wants to run /sbin/route, but that isn't in essential,
and openstack-deploy doesn't depend on it. Installing the net-tools
package before running openstack-deploy fixes that.

(I can probably file a separate bug for that, but...)

#883723#52
Date:
2026-10-09 09:18:44 UTC
From:
To:
Hello,

Bug #883723 in openstack-meta-packages reported by you has been fixed in the
Git repository and is awaiting an upload. You can see the commit
message below and you can check the diff of the fix at:

https://salsa.debian.org/openstack-team/debian/openstack-meta-packages/-/commit/07f1db5d950c8b94832d3c6bbf9096ee3e6798ed
------------------------------------------------------------------------
Documented the tooling and added a run summary

Documents the whole deployment tooling in a top-level README.md
(binary packages, tools, all-in-one and multi-node flows, the
/root/osinstallrc RC_* variables, and a full preseed-lib reference),
and makes openstack-deploy print a summary at the end of the
controller, compute and all-in-one runs: what got installed, where
the dashboard and the credentials are, and what is left to do by
hand (Closes: #883723).
------------------------------------------------------------------------

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/883723

#883723#57
Date:
2026-10-09 10:46:36 UTC
From:
To:
Hello,

Bug #883723 in openstack-meta-packages reported by you has been fixed in the
Git repository and is awaiting an upload. You can see the commit
message below and you can check the diff of the fix at:

https://salsa.debian.org/openstack-team/debian/openstack-meta-packages/-/commit/59b5327be2faf5c76e9336b97fc6cf7b8c7c94ed
------------------------------------------------------------------------
Documented the tooling and added a run summary

Documents the whole deployment tooling in a top-level README.md
(binary packages, tools, all-in-one and multi-node flows, the
/root/osinstallrc RC_* variables, and a full preseed-lib reference),
and makes openstack-deploy print a summary at the end of the
controller, compute and all-in-one runs: what got installed, where
the dashboard and the credentials are, and what is left to do by
hand (Closes: #883723).
------------------------------------------------------------------------

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/883723

#883723#60
Date:
2026-10-09 10:49:54 UTC
From:
To:
Hello,

Bug #883723 in openstack-meta-packages reported by you has been fixed in the
Git repository and is awaiting an upload. You can see the commit
message below and you can check the diff of the fix at:

https://salsa.debian.org/openstack-team/debian/openstack-meta-packages/-/commit/59b5327be2faf5c76e9336b97fc6cf7b8c7c94ed
------------------------------------------------------------------------
Documented the tooling and added a run summary

Documents the whole deployment tooling in a top-level README.md
(binary packages, tools, all-in-one and multi-node flows, the
/root/osinstallrc RC_* variables, and a full preseed-lib reference),
and makes openstack-deploy print a summary at the end of the
controller, compute and all-in-one runs: what got installed, where
the dashboard and the credentials are, and what is left to do by
hand (Closes: #883723).
------------------------------------------------------------------------

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/883723

#883723#63
Date:
2026-10-09 10:50:13 UTC
From:
To:
Hello,

Bug #883723 in openstack-meta-packages reported by you has been fixed in the
Git repository and is awaiting an upload. You can see the commit
message below and you can check the diff of the fix at:

https://salsa.debian.org/openstack-team/debian/openstack-meta-packages/-/commit/59b5327be2faf5c76e9336b97fc6cf7b8c7c94ed
------------------------------------------------------------------------
Documented the tooling and added a run summary

Documents the whole deployment tooling in a top-level README.md
(binary packages, tools, all-in-one and multi-node flows, the
/root/osinstallrc RC_* variables, and a full preseed-lib reference),
and makes openstack-deploy print a summary at the end of the
controller, compute and all-in-one runs: what got installed, where
the dashboard and the credentials are, and what is left to do by
hand (Closes: #883723).
------------------------------------------------------------------------

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/883723

#883723#68
Date:
2026-10-09 11:09:59 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
openstack-meta-packages, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 883723@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Thomas Goirand <zigo@debian.org> (supplier of updated openstack-meta-packages package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Fri, 09 Oct 2026 10:17:34 +0200
Source: openstack-meta-packages
Architecture: source
Version: 0.42
Distribution: unstable
Urgency: medium
Maintainer: Debian OpenStack <team+openstack@tracker.debian.org>
Changed-By: Thomas Goirand <zigo@debian.org>
Closes: 883723
Changes:
 openstack-meta-packages (0.42) unstable; urgency=medium
 .
   * Fixed and completed preseed-lib to match the current debconf
     questions of all OpenStack services (shared openstack-pkg-tools
     templates), added placement, gnocchi, ironic, magnum, octavia and
     vigie preseeding, and rewrote openstack-preseed on top of preseed-
     lib (now shipped in /usr/sbin).
   * openstack-preseed: fully automated with zero interaction: single-
     node and proxy-node auto-detect everything and save their values in
     /root/osinstallrc (also creating a remote-capable openstack RabbitMQ
     user), while compute-node reads them from that same file and only
     prompts for missing values.
   * openstack-deploy now prints a summary of what has been installed and
     of what still needs to be done at the end of a deployment run, and
     the whole deployment tooling is documented in a top-level README.md
     (Closes: #883723).
Checksums-Sha1:
 cee9e24fe2cf19fc651781e4729365a3723a6561 2452 openstack-meta-packages_0.42.dsc
 1734d7d09aed571aa96fd3dd69af5a2e79397358 59144 openstack-meta-packages_0.42.tar.xz
 9098febccb705a24cd8c00167650cee3ed31dc70 8392 openstack-meta-packages_0.42_amd64.buildinfo
Checksums-Sha256:
 a5f6b6f3db5bf477012556af6db27917e92c6976c4c4f232095fd47e52785cdd 2452 openstack-meta-packages_0.42.dsc
 68528707ac0fdc8260f830b532e9b6aed8bcfa28671a911ccd1e25e92e929f02 59144 openstack-meta-packages_0.42.tar.xz
 b5543d8ac3a45c39a7c4afca28887408030e84f58e3a8bd2b1553988b173a333 8392 openstack-meta-packages_0.42_amd64.buildinfo
Files:
 044944061bd1ee4b7d868e96513072e3 2452 net optional openstack-meta-packages_0.42.dsc
 6fcf5db310da4d4f9701c4667fe894e0 59144 net optional openstack-meta-packages_0.42.tar.xz
 f18190b809571467f1702af2dbce4bee 8392 net optional openstack-meta-packages_0.42_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEoLGp81CJVhMOekJc1BatFaxrQ/4FAmrIxg4ACgkQ1BatFaxr
Q/4PjxAAnYyhISioR4IkUKqKvkYtSI/+m5fFjtJ+VG5C/rcbNhTGHoeVoo0M7Ur3
+bWdDOvNSTMHjo3Db+57Xz+0YAYrDK7EZrvfxPwV3SnQI9SaSbUSfPBPE2D3UXvq
OXmojj8FLCY/PZT9/XzPezPTD7CSZ9loBwQeH5cvOjHvGjH37esOySbQPpw7cMWt
p3taGyzfE0aCEjnz1Et+P0uB4uQMwz1+g+mmRf29KQDh9OujUkBsK3CDhsC2hLsj
V3ZY56yJHwtYQvcXMyrs8Htx+dkyi5/RMhK7iD0mpiLrNu5FMulEXfLPqYl4zLR5
GEsl8W6AyKMliB+ZJxGxHNvsbiThmd7g5Ni8vUmz76ulicG+vDEq9ZNpMNmT71e4
TbK7Sa9dkbB62U1A/fB8S9sVN6jwrA/ajomTu7yRiELEaBqsEiwbbRD9HjNuO25P
In9CA4BaOLcDuW+vjNPbL6nkcv6c+EaUCHbJKxuGSLE9SjJ/JMHDQb3+1g+5vGZf
m6dHGac2pxdI542AxISyx5awS6LHg9JiGqwWTc4aWw8uAqA7my6bnEPpz+oMwXwi
Ph1sxJMhuWbx0L6o5CDU3ZRUip65l/vwDKvzEFQt12YyL+NhbVTwZbXvrTfv8IQ3
i4FLud3jfVHiMI3Aes5UySJ2pL0uH0AnaaJ671LtJyK8IrzLHsM=
=8XQO
-----END PGP SIGNATURE-----