10.2. heat パラメーター
director テンプレートコレクション内の各 heat テンプレートには、parameters セクションがあります。このセクションには、特定のオーバークラウドサービス固有の全パラメーターの定義が含まれます。これには、以下のパラメーターが含まれます。
-
overcloud.j2.yaml: デフォルトのベースパラメーター -
roles_data.yaml: コンポーザブルロールのデフォルトパラメーター -
deployment/*.yaml: 特定のサービスのデフォルトパラメーター
これらのパラメーターの値は、以下の方法で変更することができます。
- カスタムパラメーター用の環境ファイルを作成します。
-
その環境ファイルの
parameter_defaultsセクションにカスタムのパラメーターを追加します。 -
openstack overcloud deployコマンドでその環境ファイルを指定します。
10.2.1. 例 1: タイムゾーンの設定 リンクのコピーリンクがクリップボードにコピーされました!
タイムゾーンを設定するための Heat テンプレート (puppet/services/time/timezone.yaml) には TimeZone パラメーターが含まれています。TimeZone パラメーターの値を空白のままにすると、オーバークラウドはデフォルトで時刻を UTC に設定します。
タイムゾーンのリストを取得するには、timedatectl list-timezones コマンドを実行します。アジアのタイムゾーンを取得するコマンド例を以下に示します。
sudo timedatectl list-timezones|grep "Asia"
$ sudo timedatectl list-timezones|grep "Asia"
タイムゾーンを特定したら、環境ファイルの TimeZone パラメーターを設定します。以下に示す環境ファイルの例では、TimeZone の値を Asia/Tokyo に設定しています。
parameter_defaults: TimeZone: 'Asia/Tokyo'
parameter_defaults:
TimeZone: 'Asia/Tokyo'
10.2.2. 例 2: RabbitMQ ファイル記述子の上限の設定 リンクのコピーリンクがクリップボードにコピーされました!
特定の設定では、RabbitMQ サーバーのファイル記述子の上限を高くする必要がある場合があります。deployment/rabbitmq/rabbitmq-container-puppet.yaml の heat テンプレートを使用して RabbitFDLimit パラメーターで新しい制限を設定します。環境ファイルに以下のエントリーを追加します。
parameter_defaults: RabbitFDLimit: 65536
parameter_defaults:
RabbitFDLimit: 65536
10.2.3. 例 3: パラメーターの有効化および無効化 リンクのコピーリンクがクリップボードにコピーされました!
デプロイメント時にパラメーターを初期設定し、それ以降のデプロイメント操作 (更新またはスケーリング操作など) ではそのパラメーターを無効にしなければならない場合があります。たとえば、オーバークラウドの作成時にカスタム RPM を含めるには、環境ファイルに以下のエントリーを追加します。
parameter_defaults: DeployArtifactURLs: ["http://www.example.com/myfile.rpm"]
parameter_defaults:
DeployArtifactURLs: ["http://www.example.com/myfile.rpm"]
それ以降のデプロイメントでこのパラメーターを無効にするには、パラメーターを削除するだけでは不十分です。削除するのではなく、パラメーターに空の値を設定する必要があります。
parameter_defaults: DeployArtifactURLs: []
parameter_defaults:
DeployArtifactURLs: []
これにより、それ以降のデプロイメント操作ではパラメーターは設定されなくなります。
10.2.4. 例 4: ロールベースのパラメーター リンクのコピーリンクがクリップボードにコピーされました!
[ROLE]Parameters パラメーターを使用して特定のロールのパラメーターを設定します。ここで、[ROLE] はコンポーザブルロールに置き換えてください。
たとえば、director はコントローラーノードとコンピュートノードの両方に sshd を設定します。コントローラーノードとコンピュートノードに異なる sshd パラメーターを設定するには、ControllerParameters と ComputeParameters パラメーターの両方が含まれる環境ファイルを作成し、特定のロールごとに sshd パラメーターを設定します。
parameter_defaults:
ControllerParameters:
BannerText: "This is a Controller node"
ComputeParameters:
BannerText: "This is a Compute node"
parameter_defaults:
ControllerParameters:
BannerText: "This is a Controller node"
ComputeParameters:
BannerText: "This is a Compute node"
10.2.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 は存在しません。可能な場合には、オーバークラウドがデプロイメントを完了した後でオプションを手動で設定することができます。
コア heat テンプレートコレクションに hieradata 形式の Puppet 変数が含まれているかどうかを確認します。
deployment/*は通常、同じサービスの Puppet モジュールに対応します。たとえば、deployment/keystone/keystone-container-puppet.yamlテンプレートは、keystoneモジュールの hieradata を提供します。- heat テンプレートが Puppet 変数用の hieradata を設定している場合には、そのテンプレートは変更することのできる director ベースのパラメーターも開示する必要があります。
- heat テンプレートが Puppet 変数用の hieradata を設定していない場合には、環境ファイルを使用して、設定フックにより hieradata を渡します。hieradata のカスタマイズに関する詳細は、「Puppet: ロール用 hieradata のカスタマイズ」 を参照してください。
手順
OpenStack Identity (keystone) の通知の形式を変更するには、ワークフローを使用して、以下の手順を実施します。
-
設定する OpenStack パラメーターを特定します (
notification_format)。 keystonePuppet モジュールでnotification_formatの設定を検索します。grep notification_format /etc/puppet/modules/keystone/manifests/*
$ grep notification_format /etc/puppet/modules/keystone/manifests/*Copy to Clipboard Copied! Toggle word wrap Toggle overflow この場合は、
keystoneモジュールはkeystone::notification_formatの変数を使用してこのオプションを管理します。keystoneサービステンプレートでこの変数を検索します。grep "keystone::notification_format" /usr/share/openstack-tripleo-heat-templates/deployment/keystone/keystone-container-puppet.yaml
$ grep "keystone::notification_format" /usr/share/openstack-tripleo-heat-templates/deployment/keystone/keystone-container-puppet.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドの出力には、director が
KeystoneNotificationFormatパラメーターを使用してkeystone::notification_formathieradata を設定していると表示されます。
-
設定する OpenStack パラメーターを特定します (
最終的なマッピングは、以下の表のとおりです。
| director のパラメーター | Puppet hieradata | OpenStack Identity (keystone) のオプション |
|---|---|---|
|
|
|
|
オーバークラウドの環境ファイルで KeystoneNotificationFormat を設定すると、オーバークラウドの設定中に keystone.conf ファイルの notification_format オプションが設定されます。