Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

6.12. オーバークラウド作成時の環境ファイルの追加

オーバークラウドをカスタマイズするには、-e を指定して、環境ファイルを追加します。必要に応じていくつでも環境ファイルを追加することができます。ただし、後で実行される環境ファイルで定義されているパラメーターとリソースが優先されることになるため、環境ファイルの順番は重要です。以下の一覧は、環境ファイルの順序の例です。

  • 各ロールおよびそのフレーバーごとのノード数。オーバークラウドを作成するには、この情報の追加は不可欠です。
  • コンテナー化された OpenStack サービスのコンテナーイメージの場所。このファイルは、「5章コンテナーイメージのソースの設定」で説明したオプションのいずれかで作成されたものです。
  • 任意のネットワーク分離ファイル。Heat テンプレートコレクションの初期化ファイル (environments/network-isolation.yaml) から開始して、次にカスタムの NIC 設定ファイル、最後に追加のネットワーク設定の順番です。
  • 外部のロードバランサーを使用している場合には、外部の負荷分散機能の環境ファイル。詳しい情報は、『External Load Balancing for the Overcloud』を参照してください。
  • Ceph Storage、NFS、iSCSI などのストレージ環境ファイル。
  • Red Hat CDN または Satellite 登録用の環境ファイル。
  • その他のカスタム環境ファイル
注記

/usr/share/openstack-tripleo-heat-templates/environments ディレクトリーには、コンテナー化されたサービスを有効にする環境ファイル (docker.yaml および docker-ha.yaml) が含まれます。OpenStack Platform director は、オーバークラウドのデプロイメント時にこれらのファイルを自動的に追加します。デプロイコマンドでこれらのファイルを手動で追加しないでください。

-e オプションを使用してオーバークラウドに追加した環境ファイルはいずれも、オーバークラウドのスタック定義の一部となります。以下のコマンドは、追加するカスタム環境ファイルを使用してオーバークラウドの作成を開始する方法の一例です。

(undercloud) $ openstack overcloud deploy --templates \
  -e /home/stack/templates/node-info.yaml\
  -e /home/stack/templates/overcloud_images.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
  -e /home/stack/templates/network-environment.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
  -e /home/stack/templates/ceph-custom-config.yaml \
  -e /home/stack/inject-trust-anchor-hiera.yaml \
  -r /home/stack/templates/roles_data.yaml \
  --ntp-server pool.ntp.org \

上記のコマンドでは、以下の追加オプションも使用できます。

--templates
/usr/share/openstack-tripleo-heat-templates の Heat テンプレートコレクションをベースとして使用し、オーバークラウドを作成します。
-e /home/stack/templates/node-info.yaml

各ロールに使用するノード数とフレーバーを定義する環境ファイルを追加します。以下に例を示します。

parameter_defaults:
  OvercloudControllerFlavor: control
  OvercloudComputeFlavor: compute
  OvercloudCephStorageFlavor: ceph-storage
  ControllerCount: 3
  ComputeCount: 3
  CephStorageCount: 3
-e /home/stack/templates/overcloud_images.yaml
コンテナーイメージのソースが記載された環境ファイルを追加します。詳しくは、「5章コンテナーイメージのソースの設定」を参照してください。
-e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml

オーバークラウドデプロイメントのネットワーク分離を初期化する環境ファイルを追加します。

注記

network-isolation.j2.yaml は、このテンプレートの Jinja2 バージョンです。openstack overcloud deploy コマンドは、Jinja2 テンプレートをプレーンの YAML ファイルにレンダリングします。このため、openstack overcloud deploy コマンドを実行する際には、レンダリングされる YAML ファイルの名前 (この場合は network-isolation.yaml) を指定する必要があります。

-e /home/stack/templates/network-environment.yaml

ネットワーク分離をカスタマイズする環境ファイルを追加します。

注記

openstack overcloud netenv validate コマンドを実行して、network-environment.yaml ファイルの構文を検証します。このコマンドにより、Compute、コントローラー、ストレージ、およびコンポーザブルロールのネットワークファイルの個別 nic-config ファイルも検証されます。-f または --file オプションを使用して、検証するファイルを指定します。

$ openstack overcloud netenv validate -f ~/templates/network-environment.yaml
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml
Ceph Storage サービスを有効化するための環境ファイルを追加します。
-e /home/stack/templates/ceph-custom-config.yaml
Ceph Storage の設定をカスタマイズするための環境ファイルを追加します。
-e /home/stack/inject-trust-anchor-hiera.yaml
アンダークラウドにカスタム証明書をインストールする環境ファイルを追加します。
--ntp-server pool.ntp.org
時刻の同期に NTP サーバーを使用します。コントローラーノードクラスターの同期を保つには、このオプションが必要です。
-r /home/stack/templates/roles_data.yaml
(オプション) カスタムロールを使用する、またはマルチアーキテクチャークラウドを有効にする場合に生成されるロールデータ。詳しくは、「アーキテクチャーに固有なロールの生成」を参照してください。

director は、「9章オーバークラウド作成後のタスクの実行」に記載の再デプロイおよびデプロイ後の機能にこれらの環境ファイルを必要とします。これらのファイルが含まれていない場合には、オーバークラウドが破損する可能性があります。

オーバークラウド設定を後で変更する予定の場合には、以下の作業を行う必要があります。

  1. カスタムの環境ファイルおよび Heat テンプレートのパラメーターを変更します。
  2. 同じ環境ファイルを指定してopenstack overcloud deploy コマンドを再度実行します。

環境ファイルディレクトリーの追加

--environment-directory オプションを使用して、環境ファイルを格納しているディレクトリー全体を追加することも可能です。デプロイメントコマンドにより、このディレクトリー内の環境ファイルは、最初に番号順、その後にアルファベット順で処理されます。この方法を使用する場合には、ファイル名に数字のプレフィックスを使用することを推奨します。以下に例を示します。

(undercloud) $ ls -1 ~/templates
00-node-info.yaml
10-overcloud_images.yaml
20-network-isolation.yaml
30-network-environment.yaml
40-storage-environment.yaml
50-rhel-registration.yaml

以下のデプロイメントコマンドを実行してディレクトリーを追加します。

(undercloud) $ openstack overcloud deploy --templates --environment-directory ~/templates

回答ファイルの使用

回答ファイルは、テンプレートおよび環境ファイルの追加を簡素化する YAML ファイルです。回答ファイルでは、以下のパラメーターを使用します。

templates
使用するコア Heat テンプレートコレクション。これは、--templates のコマンドラインオプションの代わりとして機能します。
environments
追加する環境ファイルの一覧。これは、--environment-file (-e) のコマンドラインオプションの代わりとして機能します。

たとえば、回答ファイルには以下の内容を含めることができます。

templates: /usr/share/openstack-tripleo-heat-templates/
environments:
  - ~/templates/00-node-info.yaml
  - ~/templates/10-network-isolation.yaml
  - ~/templates/20-network-environment.yaml
  - ~/templates/30-storage-environment.yaml
  - ~/templates/40-rhel-registration.yaml

以下のデプロイメントコマンドを実行して回答ファイルを追加します。

(undercloud) $ openstack overcloud deploy --answers-file ~/answers.yaml

オーバークラウドの設定および環境ファイル管理のガイドライン

環境ファイルおよびオーバークラウドの設定の管理には、以下のガイドラインを使用します。

  • コア heat テンプレートは直接変更しないでください。これにより、望ましくない結果や環境が破損する可能性があるためです。環境ファイルを使用してオーバークラウドの設定を変更します。
  • オーバークラウドの設定は直接編集しないでください。手動で設定しても、director でオーバークラウドスタックの更新を行う際に、director の設定で上書きされてしまいます。環境ファイルを使用してオーバークラウドの設定を変更し、デプロイメントコマンドを再度実行します。
  • overcloud への更新を実行する際に、デプロイコマンドを含む bash スクリプトを作成し、このスクリプトを使用します。このスクリプトは、openstack overcloud deploy コマンドを再実行し、オーバークラウドの破損を回避するのに役立ちます。
  • 不要な変更を回避し、過去に行った変更を追跡できるように、環境ファイルを保持するディレクトリーのリビジョンを維持します。