To simplify the build tool chain, factor out Install Guide for Debian with debconf. Continueously, keep Install Guide for Debian without debconf in the doc/install-guide directory. Also, use the contents at doc/install-guide as possible for consistency. On the following patches, clean up doc/install-guide sources to cleanup the contents and build tool chains. Change-Id: I8df6b3b382137d08d60f85bc41bcd98ac1f4eb47
4.5 KiB
- orphan
debconf concepts
This chapter explains how to use the Debian debconf
and
dbconfig-common
packages to configure OpenStack services.
These packages enable users to perform configuration tasks. When users
install OpenStack packages, debconf
prompts the user for
responses, which seed the contents of configuration files associated
with that package. After package installation, users can update the
configuration of a package by using the dpkg-reconfigure
program.
If you are familiar with these packages and pre-seeding, you can
proceed to ../keystone
.
The Debian packages
The rules described here are from the Debian Policy Manual. If any rule described in this chapter is not respected, you have found a serious bug that must be fixed.
When you install or upgrade a Debian package, all configuration file
values are preserved. Using the debconf
database as a
registry is considered a bug in Debian. If you edit something in any
OpenStack configuration file, the debconf
package reads
that value when it prepares to prompt the user. For example, to change
the log in name for the RabbitMQ messaging queue for a service, you can
edit its value in the corresponding configuration file.
To opt out of using the debconf
package, run the dpkg-reconfigure
command
and select non-interactive mode:
# dpkg-reconfigure -plow debconf
Then, debconf
does not prompt you.
Another way to disable the debconf
package is to prefix
the apt
command
with DEBIAN_FRONTEND=noninteractive
, as follows:
# DEBIAN_FRONTEND=noninteractive apt-get install nova-api
If you configure a package with debconf
incorrectly, you
can re-configure it, as follows:
# dpkg-reconfigure PACKAGE-NAME
This calls the post-installation script for the
PACKAGE-NAME
package after the user responds to all
prompts. If you cannot install a Debian package in a non-interactive
way, you have found a release-critical bug in Debian. Report it to the
Debian bug tracking system.
Generally, the -common
packages install the
configuration files. For example, the glance-common
package
installs the glance-api.conf
and
glance-registry.conf
files. So, for the Image service, you
must re-configure the glance-common
package. The same
applies for cinder-common
, nova-common
, and
heat-common
packages.
In debconf
, the higher the priority for a screen, the
greater the chance that the user sees that screen. If a
debconf
screen has medium
priority and you
configure the Debian system to show only critical
prompts,
which is the default in Debian, the user does not see that
debconf
screen. Instead, the default for the related
package is used. In the Debian OpenStack packages, a number of
debconf
screens are set with medium
priority.
Consequently, if you want to respond to all debconf
screens
from the Debian OpenStack packages, you must run the following command
and select the medium
priority before you install any
packages:
# dpkg-reconfigure debconf
Note
The packages do not require pre-depends. If
dbconfig-common
is already installed on the system, the
user sees all prompts. However, you cannot define the order in which the
debconf
screens appear. The user must make sense of it even
if the prompts appear in an illogical order.
Pre-seed debconf prompts
You can pre-seed all debconf
prompts. To pre-seed means
to store responses in the debconf
database so that
debconf
does not prompt the user for responses. Pre-seeding
enables a hands-free installation for users. The package maintainer
creates scripts that automatically configure the services.
The following example shows how to pre-seed an automated MySQL Server installation:
MYSQL_PASSWORD=MYSQL_PASSWORD
echo "mysql-server-5.5 mysql-server/root_password password ${MYSQL_PASSWORD}
mysql-server-5.5 mysql-server/root_password seen true
mysql-server-5.5 mysql-server/root_password_again password ${MYSQL_PASSWORD}
mysql-server-5.5 mysql-server/root_password_again seen true
" | debconf-set-selections
DEBIAN_FRONTEND=noninteractive apt-get install -y --force-yes mysql-server
The seen true
option tells debconf
that a
specified screen was already seen by the user so do not show it again.
This option is useful for upgrades.