Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
第3章 parameters
director テンプレートコレクション内の各 Heat テンプレートには、parameters
セクションがあります。このセクションは、特定のオーバークラウドサービス固有の全パラメーターを定義します。これには、以下のパラメーターが含まれます。
-
overcloud.j2.yaml
: デフォルトのベースパラメーター -
roles_data.yaml
: コンポーザブルロールのデフォルトパラメーター -
puppet/services/*.yaml
: 特定のサービスのデフォルトパラメーター
これらのパラメーターの値は、以下の方法で変更することができます。
- カスタムパラメーター用の環境ファイルを作成します。
-
その環境ファイルの
parameter_defaults
セクションにカスタムのパラメーターを追加します。 -
openstack overcloud deploy
コマンドでその環境ファイルを指定します。
次の数項には、puppet/services
ディレクトリー内にあるサービスの特定のパラメーターを設定する方法について、具体的な例を挙げて説明します。
3.1. 例 1: タイムゾーンの設定
タイムゾーンを設定するための Heat テンプレート (puppet/services/time/timezone.yaml
) には TimeZone
パラメーターが含まれています。TimeZone
パラメーターの値を空白のままにすると、オーバークラウドはデフォルトで時刻を UTC
に設定します。director はタイムゾーンデータベース /usr/share/zoneinfo/
で定義済みの標準タイムゾーン名を認識します。たとえば、タイムゾーンを Japan
に設定するには、/usr/share/zoneinfo
の内容を確認して適切なエントリーを特定します。
$ ls /usr/share/zoneinfo/ Africa Asia Canada Cuba EST GB GMT-0 HST iso3166.tab Kwajalein MST NZ-CHAT posix right Turkey UTC Zulu America Atlantic CET EET EST5EDT GB-Eire GMT+0 Iceland Israel Libya MST7MDT Pacific posixrules ROC UCT WET Antarctica Australia Chile Egypt Etc GMT Greenwich Indian Jamaica MET Navajo Poland PRC ROK Universal W-SU Arctic Brazil CST6CDT Eire Europe GMT0 Hongkong Iran Japan Mexico NZ Portugal PST8PDT Singapore US zone.tab
上記の出力には、タイムゾーンファイルと、追加のタイムゾーンファイルを格納するディレクトリーが一覧表示されています。たとえば、Japan
はこの結果では個別のタイムゾーンファイルですが、Africa
は追加のタイムゾーンファイルを格納するディレクトリーです。
$ ls /usr/share/zoneinfo/Africa/ Abidjan Algiers Bamako Bissau Bujumbura Ceuta Dar_es_Salaam El_Aaiun Harare Kampala Kinshasa Lome Lusaka Maseru Monrovia Niamey Porto-Novo Tripoli Accra Asmara Bangui Blantyre Cairo Conakry Djibouti Freetown Johannesburg Khartoum Lagos Luanda Malabo Mbabane Nairobi Nouakchott Sao_Tome Tunis Addis_Ababa Asmera Banjul Brazzaville Casablanca Dakar Douala Gaborone Juba Kigali Libreville Lubumbashi Maputo Mogadishu Ndjamena Ouagadougou Timbuktu Windhoek
環境ファイルにエントリーを追加して、タイムゾーンを Japan
に設定します。
parameter_defaults: TimeZone: 'Japan'
3.2. 例 2: Layer 3 High Availability (L3HA) の無効化
OpenStack Networking (neutron) API 用の Heat テンプレート (puppet/services/neutron-api.yaml
) には、Layer 3 High Availability (L3HA) を有効化/無効化するためのパラメーターが含まれています。このパラメーターのデフォルト値は false
ですが、環境ファイルで以下の設定を使用して有効化することができます。
parameter_defaults: NeutronL3HA: true
3.3. 例 3: Telemetry Dispatcher の設定
OpenStack Telemetry (ceilometer
) サービスには、時系列データストレージ向けのコンポーネント (gnocchi
) が含まれています。 puppet/services/ceilometer-base.yaml
の Heat テンプレートにより、gnocchi
と標準のデータベースを切り替えることができます。これは、CeilometerMeterDispatcher
パラメーターを次のいずれかの値に設定して切り替えます。
-
gnocchi
: Ceilometer dispatcher に新しい時系列データベースを使用します。これは、デフォルトのオプションです。 -
database
: Ceilometer dispatcher に標準のデータベースを使用します。
標準のデータベースに切り替えるには、以下の設定を環境ファイルに追加します。
parameter_defaults: CeilometerMeterDispatcher: database
3.4. 例 4: RabbitMQ ファイル記述子の上限の設定
特定の設定では、RabbitMQ サーバーのファイル記述子の上限を高くする必要がある場合があります。puppet/services/rabbitmq.yaml
の Heat テンプレートを使用して RabbitFDLimit
パラメーターを必要な上限値に設定することができます。以下の設定を環境ファイルに追加します。
parameter_defaults: RabbitFDLimit: 65536
3.5. 変更するパラメーターの特定
Red Hat OpenStack Platform director は、設定用のパラメーターを多数提供しています。場合によっては、設定すべき特定のオプションとそれに対応する director のパラメーターを特定するのが困難なことがあります。director でオプションを設定するには、以下のワークフローに従ってオプションを確認し、特定のオーバークラウドパラメーターにマップしてください。
- 設定するオプションを特定します。そのオプションを使用するサービスを書き留めておきます。
このオプションに対応する Puppet モジュールを確認します。Red Hat OpenStack Platform 用の Puppet モジュールは director ノードの
/etc/puppet/modules
にあります。各モジュールは、特定のサービスに対応しています。たとえば、keystone
モジュールは OpenStack Identity (keystone) に対応しています。- Puppet モジュールに選択したオプションを制御する変数が含まれている場合には、次のステップに進んでください。
- Puppet モジュールに選択したオプションを制御する変数が含まれていない場合には、そのオプションには hieradata は存在しません。可能な場合には、オーバークラウドがデプロイメントを完了した後でオプションを手動で設定することができます。
director のコア Heat テンプレートコレクションに hieradata 形式の Puppet 変数が含まれているかどうかを確認します。
puppet/services/*
は通常、同じサービスの Puppet モジュールに対応します。たとえば、puppet/services/keystone.yaml
テンプレートは、keystone
モジュールの hieradata を提供します。- Heat テンプレートが Puppet 変数用の hieradata を設定している場合には、そのテンプレートは変更する director ベースのパラメーターも開示する必要があります。
- Heat テンプレートが Puppet 変数用の hieradata を設定していない場合には、設定フックを使用して、環境ファイルを使用する hieradata を渡します。hieradata のカスタマイズに関する詳しい情報は、「Puppet: ロール用の Hieradata のカスタマイズ」を参照してください。
ワークフローの例
OpenStack Identity (keystone) の通知の形式を変更する必要がある場合があります。ワークフローを使用して、以下の操作を行います。
-
設定すべき OpenStack パラメーターを特定します (
notification_format
)。 keystone
Puppet モジュールでnotification_format
の設定を検索します。以下に例を示します。$ grep notification_format /etc/puppet/modules/keystone/manifests/*
この場合は、
keystone
モジュールはkeystone::notification_format
の変数を使用してこのオプションを管理します。keystone
サービステンプレートでこの変数を検索します。以下に例を示します。$ grep "keystone::notification_format" /usr/share/openstack-tripleo-heat-templates/puppet/services/keystone.yaml
このコマンドの出力には、director が
KeystoneNotificationFormat
パラメーターを使用してkeystone::notification_format
hieradata を設定していると表示されます。
最終的なマッピングは、以下の表のとおりです。
director のパラメーター | Puppet Hieradata | OpenStack Identity (keystone) のオプション |
---|---|---|
|
|
|
これは、オーバークラウドの環境ファイルの KeystoneNotificationFormat
を設定すると、オーバークラウドの設定中に keystone.conf
ファイルの notification_format
オプションが設定されることを意味します。