7.3. オーバークラウドの設定およびデプロイ
オーバークラウドのネットワークリソースとベアメタルノードをプロビジョニングしたら、director のインストールで提供される未編集の heat テンプレートファイルと、作成したカスタム環境ファイルを使用して、オーバークラウドを設定できます。オーバークラウドの設定が完了したら、オーバークラウド環境をデプロイできます。
基本的なオーバークラウドでは、Block Storage にローカルの LVM ストレージを使用しますが、この設定はサポートされません。Red Hat では、Block Storage に Red Hat Ceph Storage などの外部ストレージソリューションを使用することを推奨しています。
7.3.1. 前提条件
- オーバークラウドに必要なネットワークリソースとベアメタルノードをプロビジョニングしている。
7.3.2. 環境ファイルを使用したオーバークラウドの設定
アンダークラウドには、オーバークラウドの作成プランを形作るさまざまな heat テンプレートが含まれます。YAML フォーマットの環境ファイルを使用して、オーバークラウドの特性をカスタマイズすることができます。このファイルで、コア heat テンプレートコレクションのパラメーターおよびリソースを上書きします。必要に応じていくつでも環境ファイルを追加することができます。環境ファイルの拡張子は .yaml
または .template
にする必要があります。
Red Hat では、カスタム環境ファイルを別のディレクトリーで管理することを推奨します (たとえば、templates
ディレクトリー)。
-e
オプションを使用して、環境ファイルをオーバークラウドデプロイメントに含めます。-e
オプションを使用してオーバークラウドに追加した環境ファイルはいずれも、オーバークラウドのスタック定義の一部となります。後で指定する環境ファイルで定義されるパラメーターとリソースが優先されることになるため、環境ファイルの順番は重要です。
初回のデプロイメント後にオーバークラウド設定を変更するには、以下のアクションを実行します。
- カスタムの環境ファイルおよび heat テンプレートのパラメーターを変更します。
-
同じ環境ファイルを指定して
openstack overcloud deploy
コマンドを再度実行します。
オーバークラウドの設定は直接編集しないでください。手動で設定しても、オーバークラウドスタックの更新時に、director が設定を上書きするためです。
Open Virtual Networking (OVN) は、Red Hat OpenStack Platform 17.1 におけるデフォルトのネットワークメカニズムドライバーです。分散仮想ルーター (DVR) で OVN を使用する場合には、openstack overcloud deploy
コマンドに environments/services/neutron-ovn-dvr-ha.yaml
ファイルを追加する必要があります。DVR なしで OVN を使用する場合には、openstack overcloud deploy
コマンドに environments/services/neutron-ovn-ha.yaml
ファイルを追加する必要があります。
7.3.3. アンダークラウド CA を信頼するための環境ファイルの作成
アンダークラウドで TLS を使用され認証局 (CA) が一般に信頼できない場合には、SSL エンドポイント暗号化にアンダークラウドが運用する CA を使用することができます。デプロイメントの他の要素からアンダークラウドのエンドポイントにアクセスできるようにするには、アンダークラウドの CA を信頼するようにオーバークラウドノードを設定します。
この手法が機能するためには、オーバークラウドノードにアンダークラウドの公開エンドポイントへのネットワークルートが必要です。スパイン/リーフ型ネットワークに依存するデプロイメントでは、この設定を適用する必要があります。
アンダークラウドで使用することのできるカスタム証明書には、2 つのタイプがあります。
-
ユーザーの提供する証明書: 自己の証明書を提供している場合がこれに該当します。自己の CA からの証明書、または自己署名の証明書がその例です。この証明書は
undercloud_service_certificate
オプションを使用して渡されます。この場合、自己署名の証明書または CA のどちらかを信頼する必要があります (デプロイメントによります)。 -
自動生成される証明書:
certmonger
により自己のローカル CA を使用して証明書を生成する場合がこれに該当します。undercloud.conf
ファイルのgenerate_service_certificate
オプションを使用して、証明書の自動生成を有効にします。この場合、director は CA 証明書/etc/pki/ca-trust/source/anchors/cm-local-ca.pem
を生成し、アンダークラウドの HAProxy インスタンスがサーバー証明書を使用するように設定します。この CA 証明書を OpenStack Platform に配置するには、証明書をinject-trust-anchor-hiera.yaml
ファイルに追加します。
以下の例では、/home/stack/ca.crt.pem
に保存された自己署名の証明書が使われています。自動生成される証明書を使用する場合には、代わりに /etc/pki/ca-trust/source/anchors/cm-local-ca.pem
を使用してください。
手順
証明書ファイルを開き、証明書部分だけをコピーします。鍵を含めないでください。
$ vi /home/stack/ca.crt.pem
必要となる証明書部分の例を、以下に示します。
-----BEGIN CERTIFICATE----- MIIDlTCCAn2gAwIBAgIJAOnPtx2hHEhrMA0GCSqGSIb3DQEBCwUAMGExCzAJBgNV BAYTAlVTMQswCQYDVQQIDAJOQzEQMA4GA1UEBwwHUmFsZWlnaDEQMA4GA1UECgwH UmVkIEhhdDELMAkGA1UECwwCUUUxFDASBgNVBAMMCzE5Mi4xNjguMC4yMB4XDTE3 -----END CERTIFICATE-----
以下に示す内容で
/home/stack/inject-trust-anchor-hiera.yaml
という名称の新たな YAML ファイルを作成し、PEM ファイルからコピーした証明書を追加します。parameter_defaults: CAMap: undercloud-ca: content: | -----BEGIN CERTIFICATE----- MIIDlTCCAn2gAwIBAgIJAOnPtx2hHEhrMA0GCSqGSIb3DQEBCwUAMGExCzAJBgNV BAYTAlVTMQswCQYDVQQIDAJOQzEQMA4GA1UEBwwHUmFsZWlnaDEQMA4GA1UECgwH UmVkIEhhdDELMAkGA1UECwwCUUUxFDASBgNVBAMMCzE5Mi4xNjguMC4yMB4XDTE3 -----END CERTIFICATE-----
注記- 証明書の文字列は、PEM の形式に従う必要があります。
-
CAMap
パラメーターには、SSL/TLS 設定に関連する他の証明書が含まれる場合があります。
-
/home/stack/inject-trust-anchor-hiera.yaml
ファイルをデプロイコマンドに追加します。director は、オーバークラウドのデプロイメント時に CA 証明書をそれぞれのオーバークラウドノードにコピーします。これにより、それぞれのノードはアンダークラウドの SSL エンドポイントが提示する暗号化を信頼するようになります。
7.3.4. 新規デプロイメントでの TSX の無効化
Red Hat Enterprise Linux 8.3 以降、カーネルは、デフォルトで Intel Transactional Synchronization Extensions (TSX) 機能のサポートを無効にします。
ワークロードまたはサードパーティーベンダー用に厳密に要求しない限り、新しいオーバークラウドで TSX を明示的に無効にする必要があります。
環境ファイルで KernelArgs
heat パラメーターを設定します。
parameter_defaults: ComputeParameters: KernelArgs: "tsx=off"
openstack overcloud deploy
コマンドを実行する際に、環境ファイルを指定します。
7.3.5. オーバークラウド設定の検証
オーバークラウドをデプロイする前に、heat テンプレートと環境ファイルを検証します。
17.0 で API が変更されたため、現在、次の検証は不安定になっています。
- switch-vlans
- network-environment
- dhcp-provisioning
-
検証結果が
FAILED
であっても、Red Hat OpenStack Platform のデプロイや実行が妨げられることはありません。ただし、FAILED
の検証結果は、実稼働環境で問題が発生する可能性があることを意味します。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
デプロイメントに必要なすべての環境ファイルを使用してオーバークラウドスタックを更新します。
$ openstack overcloud deploy --templates \ -e environment-file1.yaml \ -e environment-file2.yaml \ ... --stack-only
オプション: 検証実行から除外する検証を含む YAML ファイルを作成します。
<validation_name>: hosts: <targeted_hostname>
-
<validation_name>
を、検証実行から除外する検証の名前に置き換えます。 -
<targeted_hostname>
を、検証が含まれるホストの名前に置き換えます。
-
オーバークラウドスタックを検証します。
$ validation run \ --group pre-deployment \ --inventory <inventory_file> [--skiplist <validation_skips>]
-
<inventory_file>
ファイルを Ansible インベントリーファイルの名前および場所に置き換えます (例:~/tripleo-deploy/undercloud/tripleo-ansible-inventory.yaml
)。 <validation_skips>
を、検証実行から除外する検証のリストを含む YAML ファイルの名前と場所に置き換えます。注記:
-
validation run --group pre-deployment
コマンドには、node-disks
検証が含まれます。既知の問題により、この検証は現在失敗します。この問題を回避するには、node-disks
検証を含むyaml
ファイルを含む--skiplist
引数を、validation run --group pre-deployment
コマンドに追加します。 -
検証を実行すると、出力の
Reasons
列は 79 文字に制限されます。検証結果を完全に表示するには、検証ログファイルを表示します。
-
検証レポートの結果を確認します。
$ validation history get [--full] [--validation-log-dir <log_dir>] <uuid>
-
オプション:
--full
オプションを使用して、検証実行からの詳細な出力を表示します。 -
オプション:
--validation-log-dir
オプションを使用して、検証実行の出力を検証ログに書き込みます。 -
<uuid>
は、検証実行の UUID に置き換えます。
-
オプション:
7.3.6. オーバークラウドの作成
Red Hat OpenStack Platform (RHOSP) オーバークラウド環境を作成する最後の段階は、openstack overcloud deploy
コマンドを実行してオーバークラウドを作成することです。openstack overcloud deploy
コマンドで使用できるオプションについては、デプロイメントコマンドのオプション を参照してください。
手順
オーバークラウド環境に必要な環境ファイルと設定ファイル (director のインストールで提供される未編集の heat テンプレートファイルと作成したカスタム環境ファイルの両方) を照合します。これには、次のファイルが含まれている必要があります。
-
overcloud-baremetal-deployed.yaml
ノード定義ファイル。 -
overcloud-networks-deployed.yaml
ネットワーク定義ファイル。 -
overcloud-vip-deployed.yaml
ネットワーク VIP 定義ファイル。 - コンテナー化された OpenStack サービスのコンテナーイメージの場所。
- Red Hat CDN または Satellite 登録用の環境ファイル
- その他のカスタム環境ファイル
-
- 環境ファイルと設定ファイルを優先順位に従って整理し、編集されていない Heat テンプレートファイル、その次にデフォルトプロパティーのオーバーライドなどのカスタム設定を含む環境ファイルをリストします。
以下の例のように、設定ファイルとテンプレートを必要な順序で指定して、
openstack overcloud deploy
コマンドを作成します。(undercloud) $ openstack overcloud deploy --templates \ [-n /home/stack/templates/network_data.yaml \ ] -e /home/stack/templates/overcloud-baremetal-deployed.yaml\ -e /home/stack/templates/overcloud-networks-deployed.yaml\ -e /home/stack/templates/overcloud-vip-deployed.yaml \ -e /home/stack/containers-prepare-parameter.yaml \ -e /home/stack/inject-trust-anchor-hiera.yaml \ [-r /home/stack/templates/roles_data.yaml ]
- -n /home/stack/templates/network_data.yaml
- カスタムネットワーク設定を指定します。ネットワーク分離またはカスタム設定可能なネットワークを使用する場合に必要です。オーバークラウドネットワークの設定は、オーバークラウドネットワークの設定 を参照してください。
- -e /home/stack/containers-prepare-parameter.yaml
- コンテナーイメージ準備の環境ファイルを追加します。このファイルはアンダークラウドのインストール時に生成したもので、オーバークラウドの作成に同じファイルを使用することができます。
- -e /home/stack/inject-trust-anchor-hiera.yaml
- アンダークラウドにカスタム証明書をインストールする環境ファイルを追加します。
- -r /home/stack/templates/roles_data.yaml
- カスタムロールを使用する、またはマルチアーキテクチャークラウドを有効にする場合に生成されるロールデータ。
オーバークラウドの作成が完了すると、オーバークラウドを設定するために実施された Ansible のプレイの概要が director により提示されます。
PLAY RECAP ************************************************************* overcloud-compute-0 : ok=160 changed=67 unreachable=0 failed=0 overcloud-controller-0 : ok=210 changed=93 unreachable=0 failed=0 undercloud : ok=10 changed=7 unreachable=0 failed=0 Tuesday 15 October 2018 18:30:57 +1000 (0:00:00.107) 1:06:37.514 ****** ========================================================================
オーバークラウドの作成が完了すると、director はオーバークラウドにアクセスするための詳細を提供します。
Ansible passed. Overcloud configuration completed. Overcloud Endpoint: http://192.168.24.113:5000 Overcloud Horizon Dashboard URL: http://192.168.24.113:80/dashboard Overcloud rc file: /home/stack/overcloudrc Overcloud Deployed
新しい環境ファイルで設定を更新するたびに追加するファイルに、デプロイメントコマンドを格納できます。
7.3.7. デプロイメントコマンドのオプション
以下の表には、openstack overcloud deploy
コマンドの追加パラメーターをまとめています。
一部のオプションは、本リリースでは テクノロジープレビュー として提供されているため、Red Hat では全面的にはサポートしていません。これらはテスト目的にのみご利用いただく機能で、実稼働環境で使用すべきではありません。テクノロジープレビュー機能の詳細は、対象範囲の詳細 を参照してください。
パラメーター | 説明 |
---|---|
|
デプロイする heat テンプレートが含まれるディレクトリー。空欄にした場合には、デプロイメントコマンドはデフォルトのテンプレートの場所である |
| 作成または更新するスタックの名前 |
| デプロイメントのタイムアウト時間 (分単位) |
| ハイパーバイザーに使用する仮想化タイプ |
|
時刻の同期に使用する Network Time Protocol (NTP) サーバー。コンマ区切りリストで複数の NTP サーバーを指定することも可能です (例: |
|
環境変数 |
|
オーバークラウドノードにアクセスする SSH ユーザーを定義します。通常、SSH アクセスは |
| オーバークラウドノードへの SSH アクセスに使用する鍵のパスを定義します。 |
| オーバークラウドノードへの SSH アクセスに使用するネットワーク名を定義します。 |
|
オーバークラウドのデプロイメントに渡す追加の環境ファイル。このオプションは複数回指定することができます。 |
| デプロイメントに追加する環境ファイルが含まれるディレクトリー。デプロイメントコマンドでは、これらの環境ファイルは最初に番号順、その後にアルファベット順で処理されます。 |
|
ロールファイルを定義し、 |
|
ネットワークファイルを定義し、 |
|
プラン環境ファイルを定義し、 |
| デプロイメント後に一時ファイルを削除せず、それらの場所をログに記録するには、このオプションを使用します。 |
| 実際のデプロイメントを実行せずにプランを更新するには、このオプションを使用します。 |
| オーバークラウドの作成プロセスでは、デプロイメントの前に一連のチェックが行われます。このオプションは、デプロイメント前のチェックで何らかの致命的でないエラーが発生した場合に終了します。どのようなエラーが発生してもデプロイメントが失敗するので、このオプションを使用することを推奨します。 |
| オーバークラウドの作成プロセスでは、デプロイメントの前に一連のチェックが行われます。このオプションは、デプロイメント前のチェックで何らかのクリティカルではない警告が発生した場合に終了します。 |
| オーバークラウドを作成せずにオーバークラウドで検証チェックを実行するには、このオプションを使用します。 |
|
|
| オーバークラウドデプロイ後の設定を省略するには、このオプションを使用します。 |
| オーバークラウドデプロイ後の設定を強制的に行うには、このオプションを使用します。 |
|
デプロイメントコマンドで |
| 引数とパラメーターが記載された YAML ファイルへのパス |
| オーバークラウドサービスのパスワード生成を無効にする場合は、このオプションを使用します。 |
|
事前にプロビジョニングされたオーバークラウドノードをデプロイする場合は、このオプションを使用します。 |
|
|
|
オーバークラウドスタックの作成を無効にして、ソフトウェア設定を適用する |
|
保存した |
|
Ansible 設定ファイルへのパス。このファイルの設定は、 |
|
|
|
(テクノロジープレビュー) config-download Playbook の実行を特定のノードまたはノードセットに制限する場合は、このオプションを使用してノードのコンマ区切りリストを指定します。たとえば、 |
| (テクノロジープレビュー) config-download の特定のタスクセットでデプロイメントを実施する場合は、このオプションを使用して config-download Playbook からのタグのコンマ区切りリストを指定します。 |
| (テクノロジープレビュー) config-download Playbook のタグの一部を省略する場合は、このオプションを使用して省略するタグのコンマ区切りリストを指定します。 |
オプションの全リストを表示するには、以下のコマンドを実行します。
(undercloud) $ openstack help overcloud deploy
環境ファイルの parameter_defaults
セクションに追加する heat テンプレートのパラメーターの使用が優先されるため、一部のコマンドラインパラメーターは古いか非推奨となっています。以下の表では、非推奨となったパラメーターと、それに相当する heat テンプレートのパラメーターを対比しています。
パラメーター | 説明 | heat テンプレートのパラメーター |
---|---|---|
| オーバークラウドの作成プロセスでは、デプロイメントの前に一連のチェックが行われます。このオプションは、デプロイメント前のチェックで何らかの致命的なエラーが発生した場合に終了します。どのようなエラーが発生してもデプロイメントが失敗するので、このオプションを使用することを推奨します。 | パラメーターのマッピングなし |
|
デプロイメント前の検証を完全に無効にします。これらの検証は、デプロイメント前の検証として組み込まれていましたが、 | パラメーターのマッピングなし |
|
| パラメーターのマッピングなし |
| カスタマーポータルまたは Satellite 6 にオーバークラウドノードを登録する場合は、このオプションを使用します。 |
|
|
このオプションを使用して、オーバークラウドノードの登録方法を定義します。Red Hat Satellite 6 または Red Hat Satellite 5 の場合は |
|
| 登録に使用する組織。 |
|
| すでに登録済みでもシステムを登録する場合は、このオプションを使用します。 |
|
|
オーバークラウドノードを登録する Satellite サーバーのベース URL。このパラメーターには、HTTPS URL ではなく、Satellite の HTTP URL を使用します。たとえば、https://satellite.example.com ではなく http://satellite.example.com を使用します。オーバークラウドの作成プロセスではこの URL を使用して、どのサーバーが Red Hat Satellite 5 または Red Hat Satellite 6 サーバーであるかを判断します。サーバーが Red Hat Satellite 6 サーバーの場合は、オーバークラウドは |
|
| 登録に使用するアクティベーションキーを定義する場合は、このオプションを使用します。 |
|
これらのパラメーターは、Red Hat OpenStack Platform の今後のリリースで廃止される予定です。
7.3.8. デフォルトのオーバークラウドディレクトリーの内容
RHOSP 17 では、すべての設定ファイルが 1 つのディレクトリーにあります。ディレクトリーの名前は、使用した openstack コマンドとスタックの名前を組み合わせたものです。ディレクトリーにはデフォルトの場所がありますが、--working-dir
オプションを使用してデフォルトの場所を変更できます。このオプションは、デプロイメントで使用されるファイルの読み取りまたは作成を行う任意の tripleoclient
コマンドで使用できます。
Default location | コマンド |
---|---|
$HOME/tripleo-deploy/undercloud |
|
$HOME/tripleo-deploy/<stack> |
|
$HOME/overcloud-deploy/<stack> |
|
次の表は、~/overcloud-deploy/overcloud
ディレクトリーに含まれるファイルとディレクトリーの詳細を示しています。
ディレクトリー | 設定 |
---|---|
|
cli-config-download cli-enable-ssh-admin cli-grant-local-access cli-undercloud-get-horizon-url |
|
|
|
|
| 一時的な Heat 設定とデータベースのバックアップを含む一時的な Heat 作業ディレクトリー。 |
|
|
|
保存されたスタックステータスが含まれます。 |
|
|
|
作業ディレクトリーの tarball (例: |
|
スタックのパスワードが含まれています。 |
|
オーバークラウド API を使用するために必要な認証情報ファイル (例: |
| Tempest 設定が含まれています。 |
| オーバークラウドの Ansible インベントリー。 |
|
レンダリングされた jinja2 テンプレートのコピーが含まれています。ソーステンプレートは |
| オーバークラウドノードをプロビジョニングするためのベアメタルデプロイメントの入力。 |
| オーバークラウドネットワークをプロビジョニングするためのネットワークデプロイメントの入力。 |
|
CLI の |
| オーバークラウドネットワーク VIP をプロビジョニングするための VIP デプロイメントの入力。 |
7.3.9. オーバークラウドのデプロイメントの検証
デプロイされたオーバークラウドを検証します。
前提条件
- オーバークラウドをデプロイしている。
手順
source コマンドで
stackrc
認証情報ファイルを読み込みます。$ source ~/stackrc
オーバークラウドのデプロイメントを検証します。
$ validation run \ --group post-deployment \ [--inventory <inventory_file>]
<inventory_file>
は ansible インベントリーファイルの名前に置き換えます。デフォルトでは、動的インベントリーはtripleo-ansible-inventory
と呼ばれます。注記検証を実行すると、出力の
Reasons
列は 79 文字に制限されます。検証結果を完全に表示するには、検証ログファイルを表示します。
検証レポートの結果を確認します。
$ validation history get --full <UUID>
-
<UUID>
は、検証実行の UUID に置き換えます。 -
オプション:
--full
オプションを使用して、検証実行からの詳細な出力を表示します。
-
検証結果が FAILED
であっても、Red Hat OpenStack Platform のデプロイや実行が妨げられることはありません。ただし、FAILED
の検証結果は、実稼働環境で問題が発生する可能性があることを意味します。
7.3.10. オーバークラウドへのアクセス
director は、アンダークラウドからのオーバークラウドの操作に必要な認証情報を含めて認証情報ファイルを生成します。director は、このファイル overcloudrc
を stack
ユーザーのホームディレクトリーに保存します。
手順
source コマンドで
overcloudrc
ファイルを読み込みます。(undercloud)$ source ~/overcloudrc
オーバークラウドにアクセスしていることを示すコマンドプロンプトに切り替わります。
(overcloud)$
アンダークラウドの操作に戻るには、
stackrc
ファイルを読み込みます。(overcloud)$ source ~/stackrc (undercloud)$
アンダークラウドにアクセスしていることを示すコマンドプロンプトに切り替わります。
(undercloud)$