3.10.6. 非接続インストールのプライベートレジストリーの設定


非接続インストール手順を使用して cephadm をインストールし、ストレージクラスターをプライベートネットワークでブートストラップできます。非接続インストールでは、インストールにプライベートレジストリーが使用されます。デプロイメント時に Red Hat Ceph Storage ノードがインターネットにアクセスできない場合は、この手順を使用します。

認証および自己署名証明書を使用してセキュアなプライベートレジストリーを設定するには、以下の手順に従います。インターネットとローカルクラスターの両方にアクセスできるノードで、以下の手順を実行します。

注記

実稼働環境に非セキュアなレジストリーを使用することは推奨されていません。

前提条件

  • アクティブなインターネット接続のある稼働中の仮想マシン (VM) またはサーバー 1 つ以上。
  • Red Hat Ceph Storage 8.0 の場合は、AppStream に ansible-core がバンドルされた Red Hat Enterprise Linux 9.4、9.5、または 9.6。Red Hat Ceph Storage 8.1 の場合は、AppStream にバンドルされた ansible-core を備えた Red Hat Enterprise Linux 8.10、9.5、または 9.6。
  • registry.redhat.io へのログインアクセス。
  • 全ノードへの root レベルのアクセス。

手順

  1. パブリックネットワークとクラスターノードの両方にアクセスできるノードにログインします。
  2. ノードを登録します。プロンプトが表示されたら、適切な Red Hat カスタマーポータルの認証情報を入力します。

    [root@admin ~]# subscription-manager register

  3. 最新のサブスクリプションデータをプルします。

    [root@admin ~]# subscription-manager refresh

  4. Red Hat Ceph Storage で利用可能なサブスクリプションのリストを表示します。

    [root@admin ~]# subscription-manager list --available --all --matches="*Ceph*"

    Red Hat Ceph Storage の利用可能なサブスクリプションのリストから Pool ID をコピーします。

  5. サブスクリプションを割り当て、ソフトウェアエンタイトルメントにアクセスします。

    構文

    subscription-manager attach --pool=POOL_ID

    POOL_ID を前のステップで特定したプール ID に置き換えます。

  6. デフォルトのソフトウェアリポジトリーを無効にし、サーバーおよび追加のリポジトリーを有効にします。

    Red Hat Enterprise Linux 9

    [root@admin ~]# subscription-manager repos --disable=*
    [root@admin ~]# subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms
    [root@admin ~]# subscription-manager repos --enable=rhel-9-for-x86_64-appstream-rpms

  7. podman パッケージおよび httpd-tools パッケージをインストールします。

    [root@admin ~]# dnf install -y podman httpd-tools

  8. プライベートレジストリーのフォルダーを作成します。

    [root@admin ~]# mkdir -p /opt/registry/{auth,certs,data}

    レジストリーは /opt/registry に保存され、ディレクトリーはレジストリーを実行しているコンテナーにマウントされます。

    • auth ディレクトリーは、レジストリーが認証に使用する htpasswd ファイルを保存します。
    • certs ディレクトリーは、レジストリーが認証に使用する証明書を保存します。
    • data ディレクトリーはレジストリーイメージを保存します。
  9. プライベートレジストリーにアクセスするための認証情報を作成します。

    構文

    htpasswd -bBc /opt/registry/auth/htpasswd PRIVATE_REGISTRY_USERNAME PRIVATE_REGISTRY_PASSWORD

    • b オプションは、コマンドラインからパスワードを提供します。
    • B オプションは、Bcrypt 暗号化を使用してパスワードを保存します。
    • c オプションは htpasswd ファイルを作成します。
    • PRIVATE_REGISTRY_USERNAME を、プライベートレジストリー用に作成するユーザー名に置き換えます。
    • PRIVATE_REGISTRY_PASSWORD をプライベートレジストリーのユーザー名用に作成するパスワードに置き換えます。

      [root@admin ~]# htpasswd -bBc /opt/registry/auth/htpasswd myregistryusername myregistrypassword1

  10. 自己署名証明書を作成します。

    構文

    openssl req -newkey rsa:4096 -nodes -sha256 -keyout /opt/registry/certs/domain.key -x509 -days 365 -out /opt/registry/certs/domain.crt -addext "subjectAltName = DNS:LOCAL_NODE_FQDN"

    • LOCAL_NODE_FQDN を、プライベートレジストリーノードの完全修飾ホスト名に置き換えます。

      注記

      証明書のそれぞれのオプションを求めるプロンプトが出されます。CN= 値はノードのホスト名であり、DNS または /etc/hosts ファイルで解決できる必要があります。

      [root@admin ~]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout /opt/registry/certs/domain.key -x509 -days 365 -out /opt/registry/certs/domain.crt -addext "subjectAltName = DNS:admin.lab.redhat.com"

      注記

      自己署名証明書を作成する場合は、適切な Subject Alternative Name (SAN) で証明書を作成してください。適切な SAN を含まない証明書の TLS 検証を必要とする Podman コマンドは、x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0 エラーを返します。

  11. domain.cert へのシンボリックリンクを作成し、skopeo がファイル拡張子 .cert の証明書を特定できるようにします。

    [root@admin ~]# ln -s /opt/registry/certs/domain.crt /opt/registry/certs/domain.cert

  12. プライベートレジストリーノードの信頼済みリストに証明書を追加します。

    構文

    cp /opt/registry/certs/domain.crt /etc/pki/ca-trust/source/anchors/
    update-ca-trust
    trust list | grep -i "LOCAL_NODE_FQDN"

    LOCAL_NODE_FQDN を、プライベートレジストリーノードの FQDN に置き換えます。

    [root@admin ~]# cp /opt/registry/certs/domain.crt /etc/pki/ca-trust/source/anchors/
    [root@admin ~]# update-ca-trust
    [root@admin ~]# trust list | grep -i "admin.lab.redhat.com"
    
        label: admin.lab.redhat.com

  13. インストールのためにプライベートレジストリーにアクセスする任意のノードに証明書をコピーし、信頼されるリストを更新します。

    [root@admin ~]# scp /opt/registry/certs/domain.crt root@host01:/etc/pki/ca-trust/source/anchors/
    [root@admin ~]# ssh root@host01
    [root@host01 ~]# update-ca-trust
    [root@host01 ~]# trust list | grep -i "admin.lab.redhat.com"
    
        label: admin.lab.redhat.com

  14. ローカルのセキュアなプライベートレジストリーを起動します。

    構文

    podman run --restart=always --name NAME_OF_CONTAINER \
    -p 5000:5000 -v /opt/registry/data:/var/lib/registry:z \
    -v /opt/registry/auth:/auth:z \
    -v /opt/registry/certs:/certs:z \
    -e "REGISTRY_AUTH=htpasswd" \
    -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
    -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
    -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt" \
    -e "REGISTRY_HTTP_TLS_KEY=/certs/domain.key" \
    -e REGISTRY_COMPATIBILITY_SCHEMA1_ENABLED=true \
    -d registry:2

    NAME_OF_CONTAINER をコンテナーに割り当てる名前に置き換えます。

    [root@admin ~]# podman run --restart=always --name myprivateregistry \
    -p 5000:5000 -v /opt/registry/data:/var/lib/registry:z \
    -v /opt/registry/auth:/auth:z \
    -v /opt/registry/certs:/certs:z \
    -e "REGISTRY_AUTH=htpasswd" \
    -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
    -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
    -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt" \
    -e "REGISTRY_HTTP_TLS_KEY=/certs/domain.key" \
    -e REGISTRY_COMPATIBILITY_SCHEMA1_ENABLED=true \
    -d registry:2

    これにより、ポート 5000 でプライベートレジストリーを起動し、レジストリーを実行するコンテナーにレジストリーディレクトリーのボリュームをマウントします。

  15. ローカルレジストリーノードで、registry.redhat.io がコンテナーレジストリーの検索パスにあることを確認します。

    1. /etc/containers/registries.conf ファイルを編集するために開き、registry.redhat.iounqualified-search-registries リストに追加します (存在しない場合)。

      unqualified-search-registries = ["registry.redhat.io", "registry.access.redhat.com", "registry.fedoraproject.org", "registry.centos.org", "docker.io"]

  16. Red Hat カスタマーポータルの認証情報を使用して registry.redhat.io にログインします。

    構文

    podman login registry.redhat.io

  17. 以下の Red Hat Ceph Storage 8 イメージ、Prometheus イメージ、および Dashboard イメージを Red Hat カスタマーポータルからプライベートレジストリーにコピーします。

    Expand
    表3.2 スタックを監視するためのカスタムイメージの詳細
    モニタリングスタックコンポーネントイメージの詳細

    Prometheus

    registry.redhat.io/openshift4/ose-prometheus:v4.15

    Grafana

    registry.redhat.io/rhceph/grafana-rhel9:latest

    Node-exporter

    registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.15

    AlertManager

    registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.15

    HAProxy

    registry.redhat.io/rhceph/rhceph-haproxy-rhel9:latest

    keepalived

    registry.redhat.io/rhceph/keepalived-rhel9:latest

    SNMP ゲートウェイ

    registry.redhat.io/rhceph/snmp-notifier-rhel9:latest

    OAuth2 プロキシー

    registry.redhat.io/rhceph/oauth2-proxy:v7.6

    構文

    podman run -v /CERTIFICATE_DIRECTORY_PATH:/certs:Z -v /CERTIFICATE_DIRECTORY_PATH/domain.cert:/certs/domain.cert:Z  --rm registry.redhat.io/rhel9/skopeo:8.5-8 skopeo copy  --remove-signatures --src-creds RED_HAT_CUSTOMER_PORTAL_LOGIN:RED_HAT_CUSTOMER_PORTAL_PASSWORD --dest-cert-dir=./certs/ --dest-creds PRIVATE_REGISTRY_USERNAME:PRIVATE_REGISTRY_PASSWORD docker://registry.redhat.io/SRC_IMAGE:SRC_TAG docker://LOCAL_NODE_FQDN:5000/DST_IMAGE:DST_TAG

    • CERTIFICATE_DIRECTORY_PATH は、自己署名証明書へのディレクトリーパスに置き換えます。
    • RED_HAT_CUSTOMER_PORTAL_LOGIN および RED_HAT_CUSTOMER_PORTAL_PASSWORD は、ご自分の Red Hat カスタマーポータルの認証情報に置き換えてください。
    • PRIVATE_REGISTRY_USERNAME および PRIVATE_REGISTRY_PASSWORD をプライベートレジストリーの認証情報に置き換えます。
    • SRC_IMAGE および SRC_TAG を、registry.redhat.io からコピーするイメージの名前およびタグに置き換えます。
    • DST_IMAGE および DST_TAG を、プライベートレジストリーにコピーするイメージの名前およびタグに置き換えます。
    • LOCAL_NODE_FQDN を、プライベートレジストリーの FQDN に置き換えます。

      [root@admin ~]#  podman run -v /opt/registry/certs:/certs:Z -v /opt/registry/certs/domain.cert:/certs/domain.cert:Z --rm registry.redhat.io/rhel9/skopeo skopeo copy --remove-signatures --src-creds myusername:mypassword1 --dest-cert-dir=./certs/ --dest-creds myregistryusername:myregistrypassword1 docker://registry.redhat.io/rhceph/rhceph-8-rhel9:latest docker://admin.lab.redhat.com:5000/rhceph/rhceph-8-rhel9:latest
      
      [root@admin ~]# podman run -v /opt/registry/certs:/certs:Z -v /opt/registry/certs/domain.cert:/certs/domain.cert:Z --rm registry.redhat.io/rhel9/skopeo skopeo copy --remove-signatures --src-creds myusername:mypassword1 --dest-cert-dir=./certs/ --dest-creds myregistryusername:myregistrypassword1 docker://registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.12 docker://admin.lab.redhat.com:5000/openshift4/ose-prometheus-node-exporter:v4.12
      
      [root@admin ~]# podman run -v /opt/registry/certs:/certs:Z -v /opt/registry/certs/domain.cert:/certs/domain.cert:Z --rm registry.redhat.io/rhel9/skopeo skopeo copy --remove-signatures --src-creds myusername:mypassword1 --dest-cert-dir=./certs/ --dest-creds myregistryusername:myregistrypassword1 docker://registry.redhat.io/rhceph/grafana-rhel9:latest docker://admin.lab.redhat.com:5000/rhceph/grafana-rhel9:latest
      
      [root@admin ~]# podman run -v /opt/registry/certs:/certs:Z -v /opt/registry/certs/domain.cert:/certs/domain.cert:Z --rm registry.redhat.io/rhel9/skopeo skopeo copy --remove-signatures --src-creds myusername:mypassword1 --dest-cert-dir=./certs/ --dest-creds myregistryusername:myregistrypassword1 docker://registry.redhat.io/openshift4/ose-prometheus:v4.12 docker://admin.lab.redhat.com:5000/openshift4/ose-prometheus:v4.12
      
      [root@admin ~]# podman run -v /opt/registry/certs:/certs:Z -v /opt/registry/certs/domain.cert:/certs/domain.cert:Z --rm registry.redhat.io/rhel9/skopeo skopeo copy --remove-signatures --src-creds myusername:mypassword1 --dest-cert-dir=./certs/ --dest-creds myregistryusername:myregistrypassword1 docker://registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.12 docker://admin.lab.redhat.com:5000/openshift4/ose-prometheus-alertmanager:v4.12

  18. curl コマンドを使用して、イメージがローカルレジストリーにあることを確認します。

    構文

    curl -u PRIVATE_REGISTRY_USERNAME:PRIVATE_REGISTRY_PASSWORD https://LOCAL_NODE_FQDN:5000/v2/_catalog

    [root@admin ~]# curl -u myregistryusername:myregistrypassword1 https://admin.lab.redhat.com:5000/v2/_catalog
    
    {"repositories":["openshift4/ose-prometheus","openshift4/ose-prometheus-alertmanager","openshift4/ose-prometheus-node-exporter","rhceph/rhceph-8-dashboard-rhel9","rhceph/rhceph-8-rhel9"]}

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る