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: 特定のサービスのデフォルトパラメーター

これらのパラメーターの値は、以下の方法で変更することができます。

  1. カスタムパラメーター用の環境ファイルを作成します。
  2. その環境ファイルの parameter_defaults セクションにカスタムのパラメーターを追加します。
  3. 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 でオプションを設定するには、以下のワークフローに従ってオプションを確認し、特定のオーバークラウドパラメーターにマップしてください。

  1. 設定するオプションを特定します。そのオプションを使用するサービスを書き留めておきます。
  2. このオプションに対応する Puppet モジュールを確認します。Red Hat OpenStack Platform 用の Puppet モジュールは director ノードの /etc/puppet/modules にあります。各モジュールは、特定のサービスに対応しています。たとえば、keystone モジュールは OpenStack Identity (keystone) に対応しています。

    • Puppet モジュールに選択したオプションを制御する変数が含まれている場合には、次のステップに進んでください。
    • Puppet モジュールに選択したオプションを制御する変数が含まれていない場合には、そのオプションには hieradata は存在しません。可能な場合には、オーバークラウドがデプロイメントを完了した後でオプションを手動で設定することができます。
  3. 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) の通知の形式を変更する必要がある場合があります。ワークフローを使用して、以下の操作を行います。

  1. 設定すべき OpenStack パラメーターを特定します (notification_format)。
  2. keystone Puppet モジュールで notification_format の設定を検索します。以下に例を示します。

    $ grep notification_format /etc/puppet/modules/keystone/manifests/*

    この場合は、keystone モジュールは keystone::notification_format の変数を使用してこのオプションを管理します。

  3. keystone サービステンプレートでこの変数を検索します。以下に例を示します。

    $ grep "keystone::notification_format" /usr/share/openstack-tripleo-heat-templates/puppet/services/keystone.yaml

    このコマンドの出力には、director が KeystoneNotificationFormat パラメーターを使用して keystone::notification_format hieradata を設定していると表示されます。

最終的なマッピングは、以下の表のとおりです。

director のパラメーターPuppet HieradataOpenStack Identity (keystone) のオプション

KeystoneNotificationFormat

keystone::notification_format

notification_format

これは、オーバークラウドの環境ファイルの KeystoneNotificationFormat を設定すると、オーバークラウドの設定中に keystone.conf ファイルの notification_format オプションが設定されることを意味します。