debconf の概念

debconf の概念

本章では OpenStack サービスを設定するために Debian の debconfdbconfig-common を使用する方法について説明します。これらのパッケージによりユーザーが設定作業を行えます。ユーザーが OpenStack パッケージをインストールするとき、debconf がユーザーにプロンプトを表示します。ここで入力した情報は、パッケージに関連付けられた設定ファイルの内容の元になります。パッケージのインストール後、ユーザーは dpkg-reconfigure プログラムを使用して、パッケージの設定を更新できます。

これらのパッケージと事前設定に慣れている場合は、Identity service の追加 に進んでください。

Debian パッケージ

ここに記載されたルールは Debian Policy Manual にもとづいています。本章に記載されたルール通りでない場合は、修正すべき深刻なバグを見つけたことになります。

Debian パッケージのインストールやアップグレードを行う場合、すべての設定値は保持されます。レジストリとして debconf データベースを使用することは Debian ではバグになります。OpenStack 設定ファイルで何かを編集する場合、 debconf パッケージは、ユーザーにプロンプトを表示する際にその値を読み込みます。例えば、サービス用の RabbitMQ メッセージングキューのログイン名を変更する場合、対応する設定ファイルで値を編集することもできます。

debconf パッケージを使用することを止めるためには、dpkg-reconfigure コマンドを実行し、非対話モードを選択します。

# dpkg-reconfigure -plow debconf

そうすると、debconf がプロンプトを表示しなくなります。

debconf を無効化する別の方法は、以下のように apt コマンドに DEBIAN_FRONTEND=noninteractive を付けることです。

# DEBIAN_FRONTEND=noninteractive apt-get install nova-api

debconf を用いて間違った設定をした場合、以下のように再設定できます。

# dpkg-reconfigure PACKAGE-NAME

ユーザーがすべてのプロンプトに答えた後、PACKAGE-NAME パッケージ用のインストール後処理スクリプトが呼び出されます。非対話的な方法で Debian パッケージをインストールできない場合、Debian で深刻なリリースのバグを見つけたことになります。Debian のバグ追跡システムに報告してください。

一般的に、-common パッケージで設定ファイルがインストールされます。例えば、glance-common パッケージで glance-api.confglance-registry.conf ファイルがインストールされます。そのため、Image service の場合は glance-common パッケージを再設定する必要があります。cinder-commonnova-commonheat-common パッケージについても同様です。

debconf では、設定画面の優先度が高ければ高いほど、ユーザーがその画面を見る機会が増えます。debconf 画面が medium (中) の優先度で、Debian システムが critical (重要) のプロンプトのみを表示するよう設定されている場合、その debconf 画面が表示されません。代わりに、対応するパッケージのデフォルト値が使用されます。Debian OpenStack パッケージの場合、多くの debconf 画面が medium 優先度に設定されています。そのため、Debian OpenStack パッケージのすべての debconf 画面をプロンプト表示したい場合、パッケージのインストールを行う前に、以下のコマンドを実行し、medium 優先度を選択する必要があります。

# dpkg-reconfigure debconf

注釈

debconf パッケージは事前の依存関係を必要としません。dbconfig-common がすでにシステムにインストールされていれば、すべてのプロンプトが表示されます。しかしながら、debconf 画面の表示順序は定義できません。プロンプトが非論理的な順番で表示されたときでさえ、ユーザーはその意味を理解する必要があります。


debconf プロンプトの事前設定

すべての debconf プロンプトは事前設定 (pre-seed) を行うことができます。事前設定とは debconf がユーザーにプロンプトを表示しないよう、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

seen true オプションにより、指定された画面がすでにユーザーにより参照されたことを debconf に通知します。これにより、その画面はもう一度表示されなくなります。このオプションはアップグレード時に有用です。

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.