6.12. オーバークラウド作成時の環境ファイルの追加
オーバークラウドをカスタマイズするには、-e
を指定して、環境ファイルを追加します。必要に応じていくつでも環境ファイルを追加することができます。ただし、後で実行される環境ファイルで定義されているパラメーターとリソースが優先されることになるため、環境ファイルの順番は重要です。以下の一覧は、環境ファイルの順序の例です。
- 各ロールおよびそのフレーバーごとのノード数。オーバークラウドを作成するには、この情報の追加は不可欠です。
- コンテナー化された OpenStack サービスのコンテナーイメージの場所。このファイルは、5章コンテナーイメージのソースの設定で説明したオプションのいずれかで作成されたものです。
-
任意のネットワーク分離ファイル。heat テンプレートコレクションの初期化ファイル (
environments/network-isolation.yaml
) から開始して、次にカスタムの NIC 設定ファイル、最後に追加のネットワーク設定の順番です。 - 外部のロードバランサーを使用している場合には、外部の負荷分散機能の環境ファイル。詳しい情報は、オーバークラウド用の外部ロードバランサー を参照してください。
- 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章オーバークラウド作成後のタスクの実行に記載の再デプロイおよびデプロイ後の機能にこれらの環境ファイルを必要とします。これらのファイルが含まれていない場合には、オーバークラウドが破損する可能性があります。
オーバークラウド設定を後で変更する予定の場合には、以下の作業を行う必要があります。
- カスタムの環境ファイルおよび Heat テンプレートのパラメーターを変更します。
-
同じ環境ファイルを指定して
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 の設定で上書きされてしまいます。環境ファイルを介してオーバークラウドの設定を変更し、デプロイメントコマンドを再実行します。
-
deploy コマンドを含む bash スクリプトを作成し、オーバークラウドの更新を実行するときにこのスクリプトを使用します。このスクリプトは、
openstack overcloud deploy
コマンドを再実行するときに正確なオプションおよび環境ファイルの一貫性を保つのに役立ち、オーバークラウドの破損を回避するのに役立ちます。 - 環境ファイルを保持するディレクトリーのリビジョンを維持して、不要な変更を回避し、過去に行われた変更を追跡します。