第7章 コンテナーイメージのカスタマイズ
Red Hat OpenStack Platform (RHOSP) サービスはコンテナーで実行されるため、RHOSP サービスをデプロイするにはコンテナーイメージを取得する必要があります。RHOSP デプロイメント用のコンテナーイメージを準備する環境ファイルを生成およびカスタマイズできます。
7.1. director インストール用のコンテナーイメージの準備 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat では、オーバークラウド用コンテナーイメージの管理に関して、以下の方法をサポートしています。
-
コンテナーイメージを Red Hat Container Catalog からアンダークラウド上の
image-serveレジストリーにプルし、続いてそのイメージをimage-serveレジストリーからプルする。イメージをアンダークラウドにプルする際には、複数のオーバークラウドノードが外部接続を通じて同時にコンテナーイメージをプルする状況を避けてください。 - Satellite 6 サーバーからコンテナーイメージをプルする。ネットワークトラフィックは内部になるため、これらのイメージを Satellite から直接プルすることができます。
アンダークラウドのインストールには、コンテナーイメージの取得先およびその保存方法を定義するための環境ファイルが必要です。director のインストールの準備時に、デフォルトのコンテナーイメージ準備ファイルを生成します。デフォルトのコンテナーイメージ準備ファイルをカスタマイズできます。
7.1.1. コンテナーイメージ準備のパラメーター リンクのコピーリンクがクリップボードにコピーされました!
コンテナー準備用のデフォルトファイル (containers-prepare-parameter.yaml) には、ContainerImagePrepare heat パラメーターが含まれます。このパラメーターで、イメージのセットを準備するためのさまざまな設定を定義します。
parameter_defaults:
ContainerImagePrepare:
- (strategy one)
- (strategy two)
- (strategy three)
...
それぞれの設定では、サブパラメーターのセットにより使用するイメージやイメージの使用方法を定義することができます。以下の表には、ContainerImagePrepare ストラテジーの各設定で使用することのできるサブパラメーターの情報をまとめています。
| パラメーター | 説明 |
|---|---|
|
| 設定からイメージ名を除外する正規表現のリスト |
|
|
設定に含める正規表現のリスト。少なくとも 1 つのイメージ名が既存のイメージと一致している必要があります。 |
|
|
対象となるイメージのタグに追加する文字列。たとえば、17.1.0-5.161 のタグが付けられたイメージをプルし、 |
|
| 変更するイメージを絞り込むイメージラベルのディクショナリー。イメージが定義したラベルと一致する場合には、director はそのイメージを変更プロセスに含めます。 |
|
| イメージのアップロード中 (ただし目的のレジストリーにプッシュする前) に実行する Ansible ロール名の文字列 |
|
|
|
|
| アップロードプロセス中にイメージをプッシュするレジストリーの名前空間を定義します。
実稼働環境でこのパラメーターを
|
|
| 元のコンテナーイメージをプルするソースレジストリー |
|
|
初期イメージの取得場所を定義する、 |
|
|
指定したコンテナーイメージのメタデータラベルの値を使用して、すべてのイメージのタグを作成し、そのタグが付けられたイメージをプルします。たとえば、 |
イメージをアンダークラウドにプッシュする場合は、push_destination: UNDERCLOUD_IP:PORT の代わりに push_destination: true を使用します。push_destination: true 手法を使用することで、IPv4 アドレスおよび IPv6 アドレスの両方で一貫性が確保されます。
set パラメーターには、複数の キー: 値 定義を設定することができます。
| キー | 説明 |
|---|---|
|
| Ceph Storage コンテナーイメージの名前 |
|
| Ceph Storage コンテナーイメージの名前空間 |
|
| Ceph Storage コンテナーイメージのタグ |
|
| Ceph Storage Alert Manager コンテナーイメージの名前、namespace、およびタグ。 |
|
| Ceph Storage Grafana コンテナーイメージの名前、namespace、およびタグ。 |
|
| Ceph Storage Node Exporter コンテナーイメージの名前、namespace、およびタグ。 |
|
| Ceph Storage Prometheus コンテナーイメージの名前、namespace、およびタグ。 |
|
| 各 OpenStack サービスイメージの接頭辞 |
|
| 各 OpenStack サービスイメージの接尾辞 |
|
| 各 OpenStack サービスイメージの名前空間 |
|
|
使用する OpenStack Networking (neutron) コンテナーを定義するのに使用するドライバー。標準の |
|
|
ソースからの全イメージに特定のタグを設定します。定義されていない場合は、director は Red Hat OpenStack Platform のバージョン番号をデフォルト値として使用します。このパラメーターは、 |
コンテナーイメージでは、Red Hat OpenStack Platform のバージョンに基づいたマルチストリームタグが使用されます。したがって、今後 latest タグは使用されません。
7.1.2. コンテナーイメージタグ付けのガイドライン リンクのコピーリンクがクリップボードにコピーされました!
containers-prepare-parameter.yaml ファイルでイメージコンテナーを準備する際に、コンテナーイメージの 準備パラメーター で説明されているように、パラメーターを使用して環境の更新時に director がプルするコンテナーイメージ を決定します。Red Hat コンテナーレジストリーでは、すべての Red Hat OpenStack Platform コンテナーイメージをタグ付けするのに、特定のバージョン形式が使用されます。この形式は、version-release のように各コンテナーのラベルのメタデータに従います。
- version
- RHOSP のメジャーバージョンおよびマイナーバージョンに対応します。これらのバージョンは、1 つまたは複数のリリースが含まれるストリームとして機能します。
- release
- バージョンストリーム内の、特定コンテナーイメージバージョンのリリースに対応します。
たとえば、RHOSP の最新バージョンが 17.1.0 で、コンテナーイメージのリリースが 5.161 の場合、コンテナーイメージのタグは 17.1.0-5.161 となります。
メジャーバージョンタグおよびマイナー バージョン タグ
Red Hat コンテナーレジストリーでは、コンテナーイメージバージョンの最新リリースとリンクするメジャーおよびマイナー version タグのセットも使用されます。たとえば、17.1 と 17.1.0 の両方が、17.1.0 コンテナーストリームの最新 release とリンクします。17.1 の新規マイナーリリースが公開されると、17.1 タグは新規マイナーリリースストリームの最新 release とリンクします。一方、17.1.0 タグは、引き続き 17.1.0 ストリームの最新 release とリンクします。
tag および tag_from_label パラメーターの設定
containers-prepare-parameter.yaml ファイルで、ContainerImagePrepare パラメーターには tag および tag_from_label のサブパラメーターが含まれます。tag または tag_from_label を使用して、ダウンロードするコンテナーイメージを決定できます。
tag-
director は、
タグを使用してイメージをプルします。メジャーまたはマイナーバージョンのタグに基づき、Red Hat コンテナーレジストリーはバージョンストリーム内の最新イメージリリースとリンクします。 tag_from_label-
director は
tag_from_labelを使用して各コンテナーイメージのメタデータ検査を実行し、対応するイメージをプルするためのタグを生成します。
tag パラメーターは、常に tag_from_label パラメーターよりも優先されます。tag_from_label を使用するには、コンテナー準備の設定で tag パラメーターを省略します。
tag パラメーターの設定
tag のデフォルト値は、RHOSP バージョンのメジャーバージョンです(例:17.1)。この値は、常に最新のマイナーバージョンおよびリリースに対応します。
parameter_defaults:
ContainerImagePrepare:
- set:
...
tag: 17.1
...
RHOSP コンテナーイメージの特定マイナーバージョンに変更するには、タグをマイナーバージョンに設定します。たとえば、17.1.2 に変更するには、tag を 17.1.2 に設定します。
parameter_defaults:
ContainerImagePrepare:
- set:
...
tag: 17.1.2
...
tag を設定すると、director は、インストール中および更新時に tag で設定したバージョンの最新のコンテナーイメージ リリース を常にダウンロードします。これには、スタックの更新が含まれます。
スタックの更新を行う場合は、最新のコンテナーイメージではなく、実際の環境に一致するコンテナーイメージが必要ない可能性があります。この場合は、コンテナー準備の設定から tag パラメーターを省略し、tag_from_label のみを指定します。tag_from_label パラメーターは、インストールされた RHOSP バージョンを使用して、更新プロセスの一部として使用するタグの値を決定します。
tag_from_label パラメーターの設定
tag を設定しないと、director は最新のメジャーバージョンと共に tag_from_label の値を使用します。
parameter_defaults:
ContainerImagePrepare:
- set:
...
# tag: 17.1
...
tag_from_label: '{version}-{release}'
tag_from_label パラメーターは、Red Hat コンテナーレジストリーから検査する最新コンテナーイメージリリースのラベルメタデータからタグを生成します。たとえば、特定のコンテナーのラベルは、以下の version および release メタデータを使用します。
"Labels": {
"release": "5.161",
"version": "17.1.0",
...
}
tag_from_label のデフォルト値は {version}-{release} です。これは、各コンテナーイメージのバージョンおよびリリースのメタデータラベルに対応します。たとえば、コンテナーイメージの version に 17.1.0 が、release に 5.161 が、それぞれ設定されている場合、コンテナーイメージのタグは 17.1.0-5.161 となります。
7.1.3. Ceph Storage コンテナーイメージの除外 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトのオーバークラウドロール設定では、デフォルトの Controller ロール、Compute ロール、および Ceph Storage ロールが使用されます。ただし、デフォルトのロール設定を使用して Ceph Storage ノードを持たないオーバークラウドをデプロイする場合、director は引き続き Ceph Storage コンテナーイメージを Red Hat コンテナーレジストリーからプルします。イメージがデフォルト設定の一部として含まれているためです。
オーバークラウドで Ceph Storage コンテナーが必要ない場合は、Red Hat コンテナーレジストリーから Ceph Storage コンテナーイメージをプルしないように director を設定することができます。
手順
containers-prepare-parameter.yamlファイルを編集し、ceph_images: falseパラメーターを追加します。このファイルの例を以下に示します。上記のパラメーターを太字で示しています。
parameter_defaults: ContainerImagePrepare: - tag_from_label: {version}-{release} set: name_prefix: rhosp17-openstack- name_suffix: '' tag: 17.1_20231214.1 rhel_containers: false neutron_driver: ovn ceph_images: false push_destination: true-
containers-prepare-parameter.yamlファイルを保存します。 オーバークラウドのデプロイに使用する新しいコンテナーイメージファイルを作成します。
sudo openstack tripleo container image prepare -e containers-prepare-parameter.yaml --output-env-file <new_container_images_file>-
<new_container_images_file>は、新しいパラメーターを含む出力ファイルに置き換えます。
-
- 新しいコンテナーイメージファイルをオーバークラウドデプロイメント環境ファイルのリストに追加します。
7.1.4. 準備プロセスにおけるイメージの変更 リンクのコピーリンクがクリップボードにコピーされました!
イメージの準備中にイメージを変更し、変更したそのイメージで直ちにオーバークラウドをデプロイすることが可能です。
Red Hat OpenStack Platform (RHOSP) ディレクターは、Ceph コンテナーではなく、RHOSP コンテナーの準備中にイメージを変更することをサポートします。
イメージを変更するシナリオを以下に示します。
- デプロイメント前にテスト中の修正でイメージが変更される、継続的インテグレーションのパイプラインの一部として。
- ローカルの変更をテストおよび開発のためにデプロイしなければならない、開発ワークフローの一部として。
- 変更をデプロイしなければならないが、イメージビルドパイプラインでは利用することができない場合。たとえば、プロプライエタリーアドオンの追加または緊急の修正など。
準備プロセス中にイメージを変更するには、変更する各イメージで Ansible ロールを呼び出します。ロールはソースイメージを取得して必要な変更を行い、その結果をタグ付けします。prepare コマンドでイメージを目的のレジストリーにプッシュし、変更したイメージを参照するように heat パラメーターを設定することができます。
Ansible ロール tripleo-modify-image は要求されたロールインターフェイスに従い、変更のユースケースに必要な処理を行います。ContainerImagePrepare パラメーターの変更固有のキーを使用して、変更をコントロールします。
-
modify_roleでは、変更する各イメージについて呼び出す Ansible ロールを指定します。 -
modify_append_tagは、ソースイメージタグの最後に文字列を追加します。これにより、そのイメージが変更されていることが明確になります。すでにpush_destinationレジストリーに変更されたイメージが含まれている場合には、このパラメーターを使用して変更を省略します。イメージを変更する場合には、必ずmodify_append_tagを変更します。 -
modify_varsは、ロールに渡す Ansible 変数のディクショナリーです。
tripleo-modify-image ロールが処理するユースケースを選択するには、tasks_from 変数をそのロールで必要なファイルに設定します。
イメージを変更する ContainerImagePrepare エントリーを開発およびテストする場合には、イメージが想定どおりに変更されることを確認するために、追加のオプションを指定せずにイメージの準備コマンドを実行します。
sudo openstack tripleo container image prepare \
-e ~/containers-prepare-parameter.yaml
openstack tripleo container image prepare コマンドを使用するには、アンダークラウドに実行中の image-serve レジストリーが含まれている必要があります。したがって、image-serve レジストリーがインストールされないため、新しいアンダークラウドのインストール前にこのコマンドを実行することはできません。アンダークラウドが正常にインストールされた後に、このコマンドを実行することができます。
7.1.5. コンテナーイメージの既存パッケージの更新 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform (RHOSP) コンテナーのコンテナーイメージ上の既存パッケージを更新できます。
Red Hat OpenStack Platform (RHOSP) ディレクターは、Ceph コンテナーではなく、RHOSP コンテナーのコンテナーイメージ上の既存のパッケージの更新をサポートします。
手順
- コンテナーイメージにインストールするための RPM パッケージをダウンロードします。
containers-prepare-parameter.yamlファイルを編集して、コンテナーイメージ上のすべてのパッケージを更新します。ContainerImagePrepare: - push_destination: true ... modify_role: tripleo-modify-image modify_append_tag: "-updated" modify_vars: tasks_from: yum_update.yml compare_host_packages: true yum_repos_dir_path: /etc/yum.repos.d ...-
containers-prepare-parameter.yamlファイルを保存します。 -
openstack overcloud deployコマンドを実行する際に、containers-prepare-parameter.yamlファイルを含めます。
7.1.6. コンテナーイメージへの追加 RPM ファイルのインストール リンクのコピーリンクがクリップボードにコピーされました!
RPM ファイルのディレクトリーをコンテナーイメージにインストールすることができます。この機能は、ホットフィックスやローカルパッケージビルドなど、パッケージリポジトリーからは入手できないパッケージのインストールに役立ちます。
Red Hat OpenStack Platform (RHOSP) ディレクターは、Ceph コンテナーではなく、RHOSP コンテナーのコンテナーイメージへの追加の RPM ファイルのインストールをサポートします。
既存のデプロイメントでコンテナーイメージを変更する場合は、変更後にマイナー更新を実行して変更をオーバークラウドに適用する必要があります。詳細は、Red Hat OpenStack Platform のマイナー更新の実行 を参照してください。
手順
次の
ContainerImagePrepareエントリーの例では、いくつかのホットフィックスパッケージをnova-computeイメージにのみインストールします。ContainerImagePrepare: - push_destination: true ... includes: - nova-compute modify_role: tripleo-modify-image modify_append_tag: "-hotfix" modify_vars: tasks_from: rpm_install.yml rpms_path: /home/stack/nova-hotfix-pkgs ...
7.1.7. カスタム Dockerfile を使用したコンテナーイメージの変更 リンクのコピーリンクがクリップボードにコピーされました!
Dockerfile を含むディレクトリーを指定して、必要な変更を加えることができます。tripleo-modify-image ロールを呼び出すと、ロールは Dockerfile.modified ファイルを生成し、これにより FROM ディレクティブが変更され新たな LABEL ディレクティブが追加されます。
Red Hat OpenStack Platform (RHOSP) ディレクターは、Ceph コンテナーではなく、RHOSP コンテナー用のカスタム Dockerfile を使用したコンテナーイメージの変更をサポートします。
手順
以下の例では、
nova-computeイメージでカスタム Dockerfile が実行されます。ContainerImagePrepare: - push_destination: true ... includes: - nova-compute modify_role: tripleo-modify-image modify_append_tag: "-hotfix" modify_vars: tasks_from: modify_image.yml modify_dir_path: /home/stack/nova-custom .../home/stack/nova-custom/Dockerfileファイルの例を以下に示します。USERroot ディレクティブを実行した後は、元のイメージのデフォルトユーザーに戻す必要があります。FROM registry.redhat.io/rhosp-rhel9/openstack-nova-compute:latest USER "root" COPY customize.sh /tmp/ RUN /tmp/customize.sh USER "nova"
7.1.8. コンテナーイメージ管理用 Satellite サーバーの準備 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Satellite 6 には、レジストリーの同期機能が備わっています。これにより、複数のイメージを Satellite Server にプルし、アプリケーションライフサイクルの一環として管理することができます。また、他のコンテナー対応システムも Satellite をレジストリーとして使うことができます。コンテナーイメージ管理の詳細は、Red Hat Satellite 6 コンテンツ管理ガイドの コンテナーイメージの管理 を参照してください。
以下の手順は、Red Hat Satellite 6 の hammer コマンドラインツールを使用した例を示しています。組織には、例として ACME という名称を使用しています。この組織は、実際に使用する Satellite 6 の組織に置き換えてください。
この手順では、registry.redhat.io のコンテナーイメージにアクセスするために認証情報が必要です。Red Hat では、個人のユーザー認証情報を使用する代わりに、レジストリーサービスアカウントを作成し、それらの認証情報を使用して registry.redhat.io コンテンツにアクセスすることを推奨します。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。
手順
すべてのコンテナーイメージのリストを作成します。
$ sudo podman search --limit 1000 "registry.redhat.io/rhosp-rhel9" --format="{{ .Name }}" | sort > satellite_images $ sudo podman search --limit 1000 "registry.redhat.io/rhceph" | grep <ceph_dashboard_image_file> $ sudo podman search --limit 1000 "registry.redhat.io/rhceph" | grep <ceph_image_file> $ sudo podman search --limit 1000 "registry.redhat.io/openshift4" | grep ose-prometheus<ceph_dashboard_image_file>は、デプロイメントで使用する Red Hat Ceph Storage のバージョンのイメージファイルの名前に置き換えます。-
Red Hat Ceph Storage 5:
rhceph-5-dashboard-rhel8 -
Red Hat Ceph Storage 6:
rhceph-6-dashboard-rhel9
-
Red Hat Ceph Storage 5:
<ceph_image_file>は、デプロイメントで使用する Red Hat Ceph Storage のバージョンのイメージファイルの名前に置き換えます。-
Red Hat Ceph Storage 5:
rhceph-5-rhel8 Red Hat Ceph Storage 6:
rhceph-6-rhel9注記openstack-ovn-bgp-agentイメージはregistry.redhat.io/rhosp-rhel9/openstack-ovn-bgp-agent-rhel9:17.1にあります。
-
Red Hat Ceph Storage 5:
Ceph をインストールして Ceph Dashboard を有効にする場合は、次の ose-prometheus コンテナーが必要です。
registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.12 registry.redhat.io/openshift4/ose-prometheus:v4.12 registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.12
-
Satellite 6 の
hammerツールがインストールされているシステムにsatellite_imagesファイルをコピーします。あるいは、Hammer CLI ガイド に記載の手順に従って、アンダークラウドにhammerツールをインストールします。 以下の
hammerコマンドを実行して、実際の Satellite 組織に新規製品 (OSP Containers) を作成します。$ hammer product create \ --organization "ACME" \ --name "OSP Containers"このカスタム製品に、イメージを保管します。
satellite_imagesファイルからオーバークラウドのコンテナーイメージを追加します。$ while read IMAGE; do \ IMAGE_NAME=$(echo $IMAGE | cut -d"/" -f3 | sed "s/openstack-//g") ; \ IMAGE_NOURL=$(echo $IMAGE | sed "s/registry.redhat.io\///g") ; \ hammer repository create \ --organization "ACME" \ --product "OSP Containers" \ --content-type docker \ --url https://registry.redhat.io \ --docker-upstream-name $IMAGE_NOURL \ --upstream-username USERNAME \ --upstream-password PASSWORD \ --name $IMAGE_NAME ; done < satellite_imagesCeph Storage コンテナーイメージを追加します。
$ hammer repository create \ --organization "ACME" \ --product "OSP Containers" \ --content-type docker \ --url https://registry.redhat.io \ --docker-upstream-name rhceph/<ceph_image_name> \ --upstream-username USERNAME \ --upstream-password PASSWORD \ --name <ceph_image_name><ceph_image_file>は、デプロイメントで使用する Red Hat Ceph Storage のバージョンのイメージファイルの名前に置き換えます。-
Red Hat Ceph Storage 5:
rhceph-5-rhel8 Red Hat Ceph Storage 6:
rhceph-6-rhel9注記Ceph ダッシュボードをインストールする場合は、
hammer repository createコマンドに--name <ceph_dashboard_image_name>を含めます。$ hammer repository create \ --organization "ACME" \ --product "OSP Containers" \ --content-type docker \ --url https://registry.redhat.io \ --docker-upstream-name rhceph/<ceph_dashboard_image_name> \ --upstream-username USERNAME \ --upstream-password PASSWORD \ --name <ceph_dashboard_image_name><ceph_dashboard_image_file>は、デプロイメントで使用する Red Hat Ceph Storage のバージョンのイメージファイルの名前に置き換えます。-
Red Hat Ceph Storage 5:
rhceph-5-dashboard-rhel8 -
Red Hat Ceph Storage 6:
rhceph-6-dashboard-rhel9
-
Red Hat Ceph Storage 5:
-
Red Hat Ceph Storage 5:
コンテナーイメージを同期します。
$ hammer product synchronize \ --organization "ACME" \ --name "OSP Containers"Satellite Server が同期を完了するまで待ちます。
注記設定によっては、
hammerから Satellite Server のユーザー名およびパスワードが要求される場合があります。設定ファイルを使用して自動的にログインするようにhammerを設定することができます。詳細は、Hammer CLI ガイド の 認証 セクションを参照してください。-
お使いの Satellite 6 サーバーでコンテンツビューが使われている場合には、新たなバージョンのコンテンツビューを作成してイメージを反映し、アプリケーションライフサイクルの環境に従ってプロモートします。この作業は、アプリケーションライフサイクルをどのように設定するかに大きく依存します。たとえば、ライフサイクルに
productionという名称の環境があり、その環境でコンテナーイメージを利用可能にする場合には、コンテナーイメージを含むコンテンツビューを作成し、そのコンテンツビューをproduction環境にプロモートします。詳細は、コンテンツビューの管理 を参照してください。 baseイメージに使用可能なタグを確認します。$ hammer docker tag list --repository "base" \ --organization "ACME" \ --lifecycle-environment "production" \ --product "OSP Containers"このコマンドにより、特定環境のコンテンツビューでの OpenStack Platform コンテナーイメージのタグが表示されます。
アンダークラウドに戻り、Satellite サーバーをソースとして使用して、イメージを準備するデフォルトの環境ファイルを生成します。以下のサンプルコマンドを実行して環境ファイルを生成します。
$ sudo openstack tripleo container image prepare default \ --output-env-file containers-prepare-parameter.yaml-
--output-env-file: 環境ファイルの名前です。このファイルには、アンダークラウド用コンテナーイメージを準備するためのパラメーターが含まれます。ここでは、ファイル名はcontainers-prepare-parameter.yamlです。
-
containers-prepare-parameter.yamlファイルを編集して以下のパラメーターを変更します。-
push_destination: 選択したコンテナーイメージの管理手段に応じて、これをtrueまたはfalseに設定します。このパラメーターをfalseに設定すると、オーバークラウドノードはイメージを直接 Satellite からプルします。このパラメーターをtrueに設定すると、director はイメージを Satellite からアンダークラウドレジストリーにプルし、オーバークラウドはそのイメージをアンダークラウドレジストリーからプルします。 -
namespace: Satellite サーバー上のレジストリーの URL。 name_prefix: 接頭辞は Satellite 6 の命名規則に基づきます。これは、コンテンツビューを使用するかどうかによって異なります。-
コンテンツビューを使用する場合、設定は
[org]-[environment]-[content view]-[product]-です。例:acme-production-myosp17-osp_containers-. -
コンテンツビューを使用しない場合、設定は
[org]-[product]-です。例:acme-osp_containers-。
-
コンテンツビューを使用する場合、設定は
-
ceph_namespace、ceph_image、ceph_tag: Ceph Storage を使用する場合には、Ceph Storage コンテナーイメージの場所を定義するこれらの追加パラメーターを指定します。ceph_imageに Satellite 固有の接頭辞が追加された点に注意してください。この接頭辞は、name_prefixオプションと同じ値です。
-
Satellite 固有のパラメーターが含まれる環境ファイルの例を、以下に示します。
parameter_defaults:
ContainerImagePrepare:
- push_destination: false
set:
ceph_image: acme-production-myosp17_1-osp_containers-rhceph-6
ceph_namespace: satellite.example.com:443
ceph_tag: latest
name_prefix: acme-production-myosp17_1-osp_containers-
name_suffix: ''
namespace: satellite.example.com:5000
neutron_driver: null
tag: '17.1'
...
Red Hat Satellite Server に保存されている特定のコンテナーイメージのバージョンを使用するには、tag のキーと値のペアを set ディクショナリー内の特定のバージョンに設定します。たとえば、17.1.2 イメージストリームを使用するには、set ディクショナリーに tag: 17.1.2 を設定します。
undercloud.conf 設定ファイルで containers-prepare-parameter.yaml 環境ファイルを定義する必要があります。定義しないと、アンダークラウドはデフォルト値を使用します。
container_images_file = /home/stack/containers-prepare-parameter.yaml
7.1.9. ベンダープラグインのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
一部のサードパーティーハードウェアをブロックストレージのバックエンドとして使用するには、ベンダープラグインをデプロイする必要があります。以下の例で、Dell EMC ハードウェアをブロックストレージのバックエンドとして使用するために、ベンダープラグインをデプロイする方法を説明します。
手順
オーバークラウド用に新たなコンテナーイメージファイルを作成します。
$ sudo openstack tripleo container image prepare default \ --local-push-destination \ --output-env-file containers-prepare-parameter-dellemc.yaml-
containers-prepare-parameter-dellemc.yamlファイルを編集します。 メインの Red Hat OpenStack Platform コンテナーイメージの設定に
excludeパラメーターを追加します。このパラメーターを使用して、ベンダーコンテナーイメージで置き換えるコンテナーイメージを除外します。以下の例では、コンテナーイメージはcinder-volumeイメージです。parameter_defaults: ContainerImagePrepare: - push_destination: true excludes: - cinder-volume set: namespace: registry.redhat.io/rhosp-rhel9 name_prefix: openstack- name_suffix: '' tag: 17.1 ... tag_from_label: "{version}-{release}"ContainerImagePrepareパラメーターに、ベンダープラグインの代替コンテナーイメージが含まれる新しい設定を追加します。parameter_defaults: ContainerImagePrepare: ... - push_destination: true includes: - cinder-volume set: namespace: registry.connect.redhat.com/dellemc name_prefix: openstack- name_suffix: -dellemc-rhosp16 tag: 16.2-2 ...ContainerImageRegistryCredentialsパラメーターに registry.connect.redhat.com レジストリーの認証情報を追加します。parameter_defaults: ContainerImageRegistryCredentials: registry.redhat.io: [service account username]: [service account password] registry.connect.redhat.com: [service account username]: [service account password]-
containers-prepare-parameter-dellemc.yamlファイルを保存します。 openstack overcloud deployなどのデプロイメントコマンドにcontainers-prepare-parameter-dellemc.yamlファイルを追加します。$ openstack overcloud deploy --templates ... -e containers-prepare-parameter-dellemc.yaml ...director がオーバークラウドをデプロイする際に、オーバークラウドは標準のコンテナーイメージの代わりにベンダーのコンテナーイメージを使用します。
- 重要
-
containers-prepare-parameter-dellemc.yamlファイルは、オーバークラウドデプロイメント内の標準のcontainers-prepare-parameter.yamlファイルを置き換えます。オーバークラウドのデプロイメントに、標準のcontainers-prepare-parameter.yamlファイルを含めないでください。アンダークラウドのインストールおよび更新には、標準のcontainers-prepare-parameter.yamlファイルを維持します。