debconf概念

debconf概念

这一章节描述怎么使用Debian``debconf`` 和``dbconfig-common``包来配置OpenStack服务。这些包帮助用户进行配置任务。当用户安装OpenStack包时,``debconf``会提示用户输入,输入的信息会替换掉包相关的配置文件中的内容。在完成包安装后,用户可以使用 :命令:`dpkg-reconfigure`更新包的配置信息。

如果你熟悉这些包和预置,你可以继续到:doc:`../keystone`部分。

Debian包

这里的规则来源于`Debian Policy Manual <http://www.debian.org/doc/debian-policy/>`__。如果这章节中的任一规则与之不符,那么你发现了一个非修不可的严重bug.

当你安装或者升级一个Debian软件包时,所有配置文件中的值都会保留。使用``debconf``数据库作为认证在Debian中会被看作bug。如果你编辑了OpenStack配置文件的内容,当准备提示用户时,``debconf``包会读取那个值。例如,为了更改RabbitMQ消息队列服务的登录用户名,你可以编辑相关的配置文件中的值。

为了不使用``debconf`` 包,执行 dpkg-reconfigure 命令并选择非交互模式。

# dpkg-reconfigure -plow debconf

然后,debconf 将不再对你进行输入提示。

另一个禁用``debconf`` 包的方式是像下面这样与:command:apt 命令一起使用前缀``DEBIAN_FRONTEND=noninteractive``:

# DEBIAN_FRONTEND=noninteractive apt-get install nova-api

如果你使用``debconf``配置某个包错误,你可以像下面这样重新进行配置:

# dpkg-reconfigure PACKAGE-NAME

在用户完成所有提示后会调用``PACKAGE-NAME``包的执行安装脚本。如果你无法在非交互模式下安装一个Debian包,那么你已经发现了Debian严重的发布版的bug。可以将其报告到 Debian bug 跟踪系统。

一般是``-common``包安装配置文件。例如,glance-common``包安装``glance-api.confglance-registry.conf``文件。所以,对镜像服务而言,你必须重新配置``glance-common``的包。对`cinder-common``nova-common``和 ``heat-common``包来说是一样的。

在``debconf``中,越高的优先级意味着用户会看到更多的交互提示。 debconf 中有 medium 优先级,如果你配置Debian 系统只提示 critical 提示,也是Debian的默认设置,那么用户不会看到 debconf 的交互提示。同时,所有默认的依赖关系包都会被使用。在Debian的 OpenStack 的包中,大量的 debconf 的提示优先级设置是``medium`` 。就是说,如果你想对Debian OpenStack所有包的``debconf`` 交互提示进行应答 ,你必须在安装任何包之前执行下面的命令并选择 medium 优先级:

# dpkg-reconfigure debconf

注解

不需要预先处理软件包的依赖关系。如果系统上已经安装了``dbconfig-common``,用户将会看到所有的交互提示。不过,你无法确认``debconf``的交互提示出现的顺序。即使提示出现的顺序不符合逻辑,你也必须清楚他们的含义。


预置debconf的提示输入

不需要预先处理软件包的依赖关系。如果系统上已经安装了``dbconfig-common``,用户将会看到所有的交互提示。不过,你无法确认``debconf``的交互提示出现的顺序。即使提示出现的顺序不符合逻辑,你也必须清楚他们的含义。

下面例子展示了MySQL服务器自动安装的前期处理:

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.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.