4.6. Satellite サーバーをレジストリーとして使用する手順
Red Hat Satellite 6 には、レジストリーの同期機能が備わっています。これにより、複数のイメージを Satellite Server にプルし、アプリケーションライフサイクルの一環として管理することができます。また、他のコンテナー対応システムも Satellite をレジストリーとして使うことができます。コンテナーイメージ管理の詳細は、Red Hat Satellite 6 コンテンツ管理ガイドの コンテナーイメージの管理 を参照してください。
以下の手順は、Red Hat Satellite 6 の hammer
コマンドラインツールを使用した例を示しています。組織には、例として ACME
という名称を使用しています。この組織は、実際に使用する Satellite 6 の組織に置き換えてください。
手順
イメージをローカルレジストリーにプルするためのテンプレートを作成します。
$ source ~/stackrc (undercloud) $ openstack overcloud container image prepare \ --namespace=rhosp13 \ --prefix=openstack- \ --output-images-file /home/stack/satellite_images
-
任意のサービス用の環境ファイルを指定するには、
-e
オプションを使用します。 -
カスタムロールファイルを指定するには、
-r
オプションを使用します。 -
Ceph Storage を使用している場合には、Ceph Storage 用のコンテナーイメージの場所を定義する追加のパラメーターを指定します:
--set ceph_namespace
、--set ceph_image
、--set ceph_tag
注記上記の
openstack overcloud container image prepare
コマンドは、registry.redhat.io
のレジストリーをターゲットにしてイメージの一覧を生成します。この後のステップでは、openstack overcloud container image prepare
コマンドで別の値を使用します。-
任意のサービス用の環境ファイルを指定するには、
-
これで、コンテナーイメージの情報が含まれた
satellite_images
という名前のファイルが作成されます。このファイルを使用して、コンテナーイメージを Satellite 6 サーバーに同期します。 satellite_images
ファイルから YAML 固有の情報を削除して、イメージ一覧のみが記載されたフラットファイルに変換します。この操作は、以下のsed
コマンドで実行します。(undercloud) $ awk -F ':' '{if (NR!=1) {gsub("[[:space:]]", ""); print $2}}' ~/satellite_images > ~/satellite_images_names
これにより、Satellite サーバーにプルするイメージのリストが提供されます。
-
Satellite 6 の
hammer
ツールがインストールされているシステムにsatellite_images_names
ファイルをコピーします。あるいは、Hammer CLI ガイド に記載の手順に従って、アンダークラウドにhammer
ツールをインストールします。 以下の
hammer
コマンドを実行して、実際の Satellite 組織に新規製品 (OSP13 Containers
) を作成します。$ hammer product create \ --organization "ACME" \ --name "OSP13 Containers"
このカスタム製品に、イメージを保管します。
製品にベースコンテナーイメージを追加します。
$ hammer repository create \ --organization "ACME" \ --product "OSP13 Containers" \ --content-type docker \ --url https://registry.redhat.io \ --docker-upstream-name rhosp13/openstack-base \ --name base
satellite_images
ファイルからオーバークラウドのコンテナーイメージを追加します。$ while read IMAGE; do \ IMAGENAME=$(echo $IMAGE | cut -d"/" -f2 | sed "s/openstack-//g" | sed "s/:.*//g") ; \ hammer repository create \ --organization "ACME" \ --product "OSP13 Containers" \ --content-type docker \ --url https://registry.redhat.io \ --docker-upstream-name $IMAGE \ --name $IMAGENAME ; done < satellite_images_names
コンテナーイメージを同期します。
$ hammer product synchronize \ --organization "ACME" \ --name "OSP13 Containers"
Satellite Server が同期を完了するまで待ちます。
注記設定によっては、
hammer
から Satellite Server のユーザー名およびパスワードが要求される場合があります。設定ファイルを使って自動的にログインするようにhammer
を設定することができます。Hammer CLI ガイドの 認証 セクションを参照してください。- Satellite 6 サーバーでコンテンツビューを使用している場合には、新規コンテンツビューバージョンを作成して、イメージを取り入れます。
base
イメージに使用可能なタグを確認します。$ hammer docker tag list --repository "base" \ --organization "ACME" \ --product "OSP13 Containers"
これにより、OpenStack Platform コンテナーイメージのタグが表示されます。
アンダークラウドに戻り、Satellite サーバー上のイメージ用に環境ファイルを生成します。環境ファイルを生成するコマンドの例を以下に示します。
(undercloud) $ openstack overcloud container image prepare \ --namespace=satellite6.example.com:5000 \ --prefix=acme-osp13_containers- \ --tag-from-label {version}-{release} \ --output-env-file=/home/stack/templates/overcloud_images.yaml
注記このステップの
openstack overcloud container image prepare
コマンドは、Satellite サーバーをターゲットにします。ここでは、前のステップで使用したopenstack overcloud container image prepare
コマンドとは異なる値を指定します。このコマンドを実行する際には、以下の情報を含めてください。
--namespace
: Satellite サーバー上のレジストリーの URL およびポート。Red Hat Satellite のレジストリーポートは 5000 です。たとえば、--namespace=satellite6.example.com:5000
のように設定します。注記Red Hat Satellite バージョン 6.10 を使用している場合は、ポートを指定する必要はありません。デフォルトのポート
443
が使用されます。詳細は、"How can we adapt RHOSP13 deployment to Red Hat Satellite 6.10?" を参照してください。.--prefix=
- この接頭辞は、ラベルの Satellite 6 の命名規則に基づいており、この接頭辞は小文字を使用し、アンダースコアの代わりにスペースを使用します。この接頭辞は、コンテンツビューを使用するかどうかによって異なります。-
コンテンツビューを使用する場合、設定は
[org]-[environment]-[content view]-[product]-
です。たとえば、acme-production-myosp13-osp13_containers-
のようになります。 -
コンテンツビューを使用しない場合、設定は
[org]-[product]-
です。たとえば、acme-osp13_containers-
のようになります。
-
コンテンツビューを使用する場合、設定は
-
--tag-from-label {version}-{release}
: 各イメージの最新のタグを識別します。 -
-e
: オプションのサービスの環境ファイルを指定します。 -
-r
: カスタムロールファイルを指定します。 --set ceph_namespace
、--set ceph_image
、--set ceph_tag
: Ceph Storage を使用する場合には、Ceph Storage のコンテナーイメージの場所を定義する追加のパラメーターを指定します。ceph_image
に Satellite 固有の接頭辞が追加された点に注意してください。この接頭辞は、--prefix
オプションと同じ値です。以下に例を示します。--set ceph_image=acme-osp13_containers-rhceph-3-rhel7
これにより、オーバークラウドは Satellite の命名規則の Ceph コンテナーイメージを使用することができます。
-
overcloud_images.yaml
ファイルには、Satellite サーバー上のイメージの場所が含まれます。このファイルをデプロイメントに追加します。
レジストリーの設定が完了しました。