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 Identity service.
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
Poznámka
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.
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.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.