3.12. 新しいストレージクラスターのブートストラップ

cephadm ユーティリティーは、ブートストラッププロセス中に以下のタスクを実行します。

  • ローカルノード上に新しい RedHat Ceph Storage クラスターの Ceph Monitor デーモンと Ceph Manager デーモンをコンテナーとしてインストールし、開始します。
  • /etc/ceph ディレクトリーを作成します。
  • Red Hat Ceph Storage クラスターの /etc/ceph/ceph.pub に公開鍵のコピーを書き込み、SSH キーを root ユーザーの /root/.ssh/authorized_keys ファイルに追加します。
  • _admin ラベルをブートストラップノードに適用します。
  • 新しいクラスターと通信するために必要な最小限の設定ファイルを /etc/ceph/ceph.conf に書き込みます。
  • client.admin 管理秘密鍵のコピーを /etc/ceph/ceph.client.admin.keyring に書き込みます。
  • Prometheus、Grafana、および node-exporteralert-manager などのその他のツールを使用して、基本的な監視スタックをデプロイします。
重要

非接続インストールを実行している場合は、非接続インストールの実行 を参照してください。

注記

新しいストレージクラスターで実行する既存の Prometheus サービスがある場合、または Rook で Ceph を実行している場合は、cephadm bootstrap コマンドで --skip-monitoring-stack オプションを使用します。このオプションは、後で手動で設定できるように、基本的なモニタリングスタックを迂回します。

重要

監視スタックをデプロイする場合は、Red Hat Ceph Storage Operations GuideCeph Orchestrator を使用したモニタリングスタックのデプロイ を参照してください。

重要

ブートストラップにより、Dashboard への初期ログインのデフォルトのユーザー名およびパスワードが提供されます。ブートストラップでは、ログイン後にパスワードを変更する必要があります。

重要

ブートストラッププロセスを開始する前に、使用するコンテナーイメージに cephadm と同じバージョンの Red Hat Ceph Storage があることを確認してください。2 つのバージョンが一致しないと Creating initial admin user 段階でブートストラップに失敗します。

注記

ブートストラッププロセスを開始する前に、registry.redhat.io コンテナーレジストリーのユーザー名とパスワードを作成する必要があります。Red Hat コンテナーレジストリー認証の詳細については、ナレッジベースの記事 Red Hat Container Registry Authentication を参照してください。

前提条件

  • 最初の Ceph Monitor コンテナーの IP アドレス。これはストレージクラスターの最初のノードの IP アドレスでもあります。
  • registry.redhat.io へのログインアクセス。
  • 少なくとも 10 GB の空き容量がある /var/lib/containers/
  • 全ノードへの root レベルのアクセス。
注記

ストレージクラスターに複数のネットワークおよびインターフェイスが含まれる場合、ストレージクラスターを使用するすべてのノードからアクセス可能なネットワークを選択するようにしてください。

注記

ローカルノードが完全修飾ドメイン名 (FQDN) を使用する場合は、コマンドラインで --allow-fqdn-hostname オプションを cephadm bootstrap に追加します。

重要

クラスターの最初の Monitor ノードにするノードで cephadm bootstrap を実行します。IP_ADDRESS オプションは、cephadm bootstrap の実行に使用するノードの IP アドレスでなければなりません。

注記

IPV6 アドレスを使用してストレージクラスターをデプロイする場合は、--mon-ip IP_ADDRESS オプションで IPV6 アドレス形式を使用します。例: cephadm bootstrap --mon-ip 2620:52:0:880:225:90ff:fefc:2536 --registry-json /etc/mylogin.json

重要

いくつかの未解決の問題により、Red Hat Ceph Storage 5.1 での Ceph Object Gateway マルチサイトの設定はサポートされません。詳細は、ナレッジベースアーティクル Red Hat Ceph Storage 5.1 does not support multi-site configuration を参照してください。

新しい Red Hat Ceph Storage クラスターのブートストラップ時に --yes-i-know フラグを使用して、マルチサイトのリグレッションに関する警告を表示します。

注記

Red Hat Ceph Storage 5.0z4 の新規インストールを計画している場合は、ナレッジベースの記事 How to upgrade from Red Hat Ceph Storage 4.2z4 to 5.0z4 ブートストラック計画に従ってください。

手順

  • ストレージクラスターをブートストラップします。

    構文

    cephadm bootstrap --cluster-network NETWORK_CIDR --mon-ip IP_ADDRESS --registry-url registry.redhat.io --registry-username USER_NAME --registry-password PASSWORD --yes-i-know

    例:

    [root@host01 ~]# cephadm bootstrap --cluster-network 10.10.128.0/24 --mon-ip 10.10.128.68 --registry-url registry.redhat.io --registry-username myuser1 --registry-password mypassword1 --yes-i-know

    注記

    内部クラスタートラフィックをパブリックネットワークでルーティングする必要がある場合、--cluster-network NETWORK_CIDR オプションを省略できます。

    スクリプトが完了するまで数分かかります。スクリプトが完了すると、Red Hat Ceph Storage Dashboard URL へのクレデンシャル、Ceph コマンドラインインターフェイス (CLI) にアクセスするコマンド、およびテレメトリーを有効にする要求が提供されます。

    例:

    Ceph Dashboard is now available at:
    
                 URL: https://host01:8443/
                User: admin
            Password: i8nhu7zham
    
    Enabling client.admin keyring and conf on hosts with "admin" label
    You can access the Ceph CLI with:
    
            sudo /usr/sbin/cephadm shell --fsid 266ee7a8-2a05-11eb-b846-5254002d4916 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
    
    Please consider enabling telemetry to help improve Ceph:
    
            ceph telemetry on
    
    For more information see:
    
            https://docs.ceph.com/docs/master/mgr/telemetry/
    
    Bootstrap complete.

関連情報

3.12.2. JSON ファイルを使用したログイン情報の保護

ストレージ管理者は、ログインおよびパスワード情報を JSON ファイルに追加し、ブートストラップするために JSON ファイルを参照することがあります。これにより、ログインクレデンシャルが公開されないように保護されます。

注記

cephadm --registry-login コマンドで JSON ファイルを使用することもできます。

前提条件

  • 最初の Ceph Monitor コンテナーの IP アドレス。これはストレージクラスターの最初のノードの IP アドレスでもあります。
  • registry.redhat.io へのログインアクセス。
  • 少なくとも 10 GB の空き容量がある /var/lib/containers/
  • 全ノードへの root レベルのアクセス。

手順

  1. JSON ファイルを作成します。この例では、ファイルの名前は mylogin.json です。

    構文

    {
     "url":"REGISTRY_URL",
     "username":"USER_NAME",
     "password":"PASSWORD"
    }

    例:

    {
     "url":"registry.redhat.io",
     "username":"myuser1",
     "password":"mypassword1"
    }

  2. ストレージクラスターをブートストラップします。

    構文

    cephadm bootstrap --mon-ip IP_ADDRESS --registry-json /etc/mylogin.json

    例:

    [root@host01 ~]# cephadm bootstrap --mon-ip 10.10.128.68 --registry-json /etc/mylogin.json

3.12.3. サービス設定ファイルを使用したストレージクラスターのブートストラップ

ストレージクラスターをブートストラップし、サービス設定ファイルを使用して追加のホストとデーモンを設定するには、cephadm bootstrap コマンドで --apply-spec オプションを使用します。設定ファイルは、デプロイするサービスのサービスタイプ、配置、および指定されたノードが含まれる .yaml ファイルです。

注記

マルチサイトなどのアプリケーションにデフォルト以外のレルムまたはゾーンを使用する場合は、それらを設定ファイルに追加して --apply-spec オプションを使用する代わりに、ストレージクラスターをブートストラップした後に Ceph Object Gateway デーモンを設定します。これにより、Ceph Object Gateway デーモンをデプロイする前に必要なレルムまたはゾーンを作成する機会が得られます。詳細は、Red Hat Ceph Storage Operations Guide を参照してください。

注記

Ceph iSCSI ゲートウェイ、NFS-Ganesha ゲートウェイ、または Metadata Server (MDS) サービスをデプロイする場合は、ストレージクラスターのブートストラップ後に設定します。

  • Ceph iSCSI ゲートウェイまたは Ceph NFS-Ganesha ゲートウェイをデプロイするには、最初に RADOS プールを作成する必要があります。
  • MDS サービスをデプロイするには、最初に CephFS ボリュームを作成する必要があります。

詳細は、Red Hat Ceph Storage Operations Guide を参照してください。

注記

Red Hat Ceph Storage 5.1 以降では、--apply-spec オプションを指定して bootstrap コマンドを実行する場合は、仕様ファイルにブートストラップホストの IP アドレスが含まれていることを確認してください。これにより、アクティブな Ceph Manager がすでに実行されているブートストラップホストを再追加する際に、IP アドレスがループバックアドレスに解決されなくなります。

ブートストラップ中に --apply spec オプションを使用せず、代わりに ceph orch apply コマンドを、ホストの再追加を含み、実行中のアクティブな Ceph Manager を含む別の仕様ファイルで使用する場合は、addr フィールドを明示的に指定してください。これは、ブートストラップ後に任意の仕様ファイルを適用する場合に適用されます。

前提条件

  • 1 つ以上の稼働中の仮想マシン (VM) またはサーバー。
  • Red Hat Enterprise Linux 8.4 EUS 以降。
  • 全ノードへの root レベルのアクセス。
  • registry.redhat.io へのログインアクセス。
  • パスワードなしの ssh がストレージクラスター内のすべてのホストに設定されます。
  • cephadm は、ストレージクラスターの最初の Monitor ノードにするノードにインストールされます。

手順

  1. ブートストラップホストにログインします。
  2. ストレージクラスターのサービス設定の .yaml ファイルを作成します。このサンプルファイルは、cephadm bootstrap に対して、最初のホストおよび 2 つの追加ホストを設定するよう指示し、利用可能なすべてのディスクに OSD を作成するように指定します。

    例:

    service_type: host
    addr: host01
    hostname: host01
    ---
    service_type: host
    addr: host02
    hostname: host02
    ---
    service_type: host
    addr: host03
    hostname: host03
    ---
    service_type: host
    addr: host04
    hostname: host04
    ---
    service_type: mon
    placement:
      host_pattern: "host[0-2]"
    ---
    service_type: osd
    service_id: my_osds
    placement:
      host_pattern: "host[1-3]"
    data_devices:
      all: true

  3. --apply-spec オプションを使用してストレージクラスターをブートストラップします。

    構文

    cephadm bootstrap --apply-spec CONFIGURATION_FILE_NAME --mon-ip MONITOR_IP_ADDRESS --ssh-private-key PRIVATE_KEY --ssh-public-key PUBLIC_KEY --registry-url registry.redhat.io --registry-username USER_NAME --registry-password PASSWORD

    例:

    [root@host01 ~]# cephadm bootstrap --apply-spec initial-config.yaml --mon-ip 10.10.128.68 --ssh-private-key /home/ceph/.ssh/id_rsa --ssh-public-key /home/ceph/.ssh/id_rsa.pub --registry-url registry.redhat.io --registry-username myuser1 --registry-password mypassword1

    スクリプトが完了するまで数分かかります。スクリプトが完了すると、Red Hat Ceph Storage Dashboard URL へのクレデンシャル、Ceph コマンドラインインターフェイス (CLI) にアクセスするコマンド、およびテレメトリーを有効にする要求が提供されます。

  4. ストレージクラスターが稼働状態になったら、追加のデーモンとサービスの設定の詳細について Red Hat Ceph Storage Operations Guide を参照してください。

関連情報

3.12.4. root 以外のユーザーでのストレージクラスターのブートストラップ

ブートストラップノードで root 以外のユーザーとして Red Hat Ceph Storage クラスターをブートストラップするには、cephadm bootstrap コマンドで --ssh-user オプションを使用します。--ssh-user は、クラスターノードへの SSH 接続のユーザーを指定します。

root 以外のユーザーには、パスワードなしの sudo アクセスが必要です。詳細は、sudo アクセスを持つ Ansible ユーザーの作成 セクションおよび Ansible でのパスワードレス SSH の有効化 セクションを参照してください。

前提条件

  • 最初の Ceph Monitor コンテナーの IP アドレス。これはストレージクラスターの最初の Monitor ノードの IP アドレスでもあります。
  • registry.redhat.io へのログインアクセス。
  • 少なくとも 10 GB の空き容量がある /var/lib/containers/
  • SSH 公開鍵と秘密鍵
  • ブートストラップノードへのパスワードなしの sudo アクセス。

手順

  1. ブートストラップノードで sudo に変更します。

    構文

    su - SSH_USER_NAME

    例:

    [root@host01 ~]# su - ceph
    Last login: Tue Sep 14 12:00:29 EST 2021 on pts/0

  2. ブートストラップノードに対して SSH 接続を確立します。

    例:

    [ceph@host01 ~]# ssh host01
    Last login: Tue Sep 14 12:03:29 EST 2021 on pts/0

  3. オプション: cephadm bootstrap コマンドを呼び出します。

    注記

    秘密キーと公開キーの使用はオプションです。SSH キーがまだ作成されていない場合は、この手順で作成できます。

    --ssh-private-key オプションおよび --ssh-public-key オプションを追加します。

    構文

    cephadm bootstrap --ssh-user USER_NAME --mon-ip IP_ADDRESS --ssh-private-key PRIVATE_KEY --ssh-public-key PUBLIC_KEY --registry-url registry.redhat.io --registry-username USER_NAME --registry-password PASSWORD

    cephadm bootstrap --ssh-user ceph-admin --mon-ip 10.10.128.68 --ssh-private-key /home/ceph/.ssh/id_rsa --ssh-public-key /home/ceph/.ssh/id_rsa.pub --registry-url registry.redhat.io --registry-username myuser1 --registry-password mypassword1

関連情報

3.12.5. ブートストラップコマンドのオプション

cephadm bootstrap コマンドは、ローカルホストで Ceph Storage クラスターをブートストラップします。これは、MON デーモンと MGR デーモンをブートストラップノードにデプロイし、モニタリングスタックをローカルホストに自動的にデプロイし、ceph orch host add HOSTNAME を呼び出します。

以下の表は、cephadm bootstrap に利用可能なオプションをまとめています。

cephadm bootstrap オプション説明

--config CONFIG_FILE, -c CONFIG_FILE

CONFIG_FILE は、Bootrap コマンドで使用する ceph.conf ファイルです。

--cluster-network NETWORK_CIDR

内部クラスタートラフィック用に NETWORK_CIDR で定義されるサブネットを使用します。これは CIDR 表記で指定されます。例:10.10.128.0/24

--mon-id MON_ID

MON_ID という名前のホストでブートストラップします。デフォルト値はローカルホストです。

--mon-addrv MON_ADDRV

mon IP (例: [v2:localipaddr:3300,v1:localipaddr:6789])

--mon-ip IP_ADDRESS

cephadm bootstrap の実行に使用するノードの IP アドレス。

--mgr-id MGR_ID

MGR ノードをインストールするホスト ID。デフォルト: 無作為に生成されます。

--fsid FSID

クラスター FSID

--output-dir OUTPUT_DIR

このディレクトリーを使用して、設定、キーリング、および公開鍵ファイルを作成します。

--output-keyring OUTPUT_KEYRING

この場所を使用して、新規クラスターの admin キーおよび mon キーでキーリングファイルを作成します。

--output-config OUTPUT_CONFIG

この場所を使用して、新しいクラスターに接続するために設定ファイルを書き込みます。

--output-pub-ssh-key OUTPUT_PUB_SSH_KEY

この場所を使用して、クラスターの公開 SSH 鍵を書き込みます。

--skip-ssh

ローカルホストで ssh キーの設定を省略します。

--initial-dashboard-user INITIAL_DASHBOARD_USER

Dashboard の初期ユーザー。

--initial-dashboard-password INITIAL_DASHBOARD_PASSWORD

初期ダッシュボードユーザーの初期パスワード。

--ssl-dashboard-port SSL_DASHBOARD_PORT

SSL を使用してダッシュボードとの接続に使用されるポート番号。

--dashboard-key DASHBOARD_KEY

Dashboard キー。

--dashboard-crt DASHBOARD_CRT

Dashboard の証明書。

--ssh-config SSH_CONFIG

SSH 設定。

--ssh-private-key SSH_PRIVATE_KEY

SSH 秘密鍵。

--ssh-public-key SSH_PUBLIC_KEY

SSH 公開鍵。

--ssh-user SSH_USER

クラスターホストへの SSH 接続のユーザーを設定します。root 以外のユーザーには、パスワードを使用しない sudo が必要です。

--skip-mon-network

ブートストラップ mon ip に基づいて mon public_network を設定します。

--skip-dashboard

Ceph Dashboard を有効にしません。

--dashboard-password-noupdate

Dashboard のパスワードの強制変更を無効にします。

--no-minimize-config

設定ファイルを同化して最小化しません。

--skip-ping-check

mon IP が ping 可能であることは検証しません。

--skip-pull

ブートストラップ前に最新のイメージをプルしません。

--skip-firewalld

firewalld を設定しません。

--allow-overwrite

既存の –output-* config/keyring/ssh ファイルの上書きを許可します。

--allow-fqdn-hostname

完全修飾ホスト名を許可します。

--skip-prepare-host

ホストを準備しません。

--orphan-initial-daemons

最初の mon、mgr、および crash サービス仕様を作成しません。

--skip-monitoring-stack

モニタリングスタック (prometheus、grafana、alertmanager、node-exporter) を自動的にプロビジョニングしません。

--apply-spec APPLY_SPEC

ブートストラップ後にクラスター仕様ファイルを適用します (ssh キーをコピーし、ホストを追加し、サービスを適用します)。

--registry-url REGISTRY_URL

ログインするカスタムレジストリーの URL を指定します。例: registry.redhat.io

--registry-username REGISTRY_USERNAME

カスタムレジストリーへのログインアカウントのユーザー名。

--registry-password REGISTRY_PASSWORD

カスタムレジストリーへのログインアカウントのパスワード

--registry-json REGISTRY_JSON

レジストリーのログイン情報が含まれる JSON ファイル。

関連情報

  • --skip-monitoring-stack オプションについての詳細は、ホストの追加 を参照してください。
  • registry-json オプションを使用してレジストリーにログインする方法については、registry-login コマンドのヘルプを参照してください。
  • cephadm オプションの詳細は、cephadm のヘルプを参照してください。

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

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

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

注記

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

前提条件

  • アクティブなインターネット接続のある稼働中の仮想マシン (VM) またはサーバー 1 つ以上。
  • Red Hat Enterprise Linux 8.4 EUS 以降。
  • 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 8

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

    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. ローカルのセキュアなプライベートレジストリーを起動します。

    構文

    [root@admin ~]# 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 5 イメージ、Prometheus イメージ、および Dashboard イメージを Red Hat カスタマーポータルからプライベートレジストリーにコピーします。

    表3.1 スタックを監視するためのカスタムイメージの詳細

    モニタリングスタックコンポーネントイメージの詳細

    Prometheus

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

    Grafana

    registry.redhat.io/rhceph/rhceph-5-dashboard-rhel8:latest

    Node-exporter

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

    AlertManager

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

    HAProxy

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

    keepalived

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

    SNMP ゲートウェイ

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

    構文

    podman run -v /CERTIFICATE_DIRECTORY_PATH:/certs:Z -v /CERTIFICATE_DIRECTORY_PATH/domain.cert:/certs/domain.cert:Z  --rm registry.redhat.io/rhel8/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/rhel8/skopeo:8.5-8 skopeo copy  --remove-signatures --src-creds myusername:mypassword1 --dest-cert-dir=./certs/ --dest-creds myregistryusername:myregistrypassword1 docker://registry.redhat.io/rhceph/rhceph-5-rhel8:latest docker://admin.lab.redhat.com:5000/rhceph/rhceph-5-rhel8: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/rhel8/skopeo:8.5-8 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.10 docker://admin.lab.redhat.com:5000/openshift4/ose-prometheus-node-exporter:v4.10
      
      [root@admin ~]# podman run -v /opt/registry/certs:/certs:Z -v /opt/registry/certs/domain.cert:/certs/domain.cert:Z --rm registry.redhat.io/rhel8/skopeo:8.5-8 skopeo copy  --remove-signatures --src-creds myusername:mypassword1 --dest-cert-dir=./certs/ --dest-creds myregistryusername:myregistrypassword1 docker://registry.redhat.io/rhceph/rhceph-5-dashboard-rhel8:latest docker://admin.lab.redhat.com:5000/rhceph/rhceph-5-dashboard-rhel8: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/rhel8/skopeo:8.5-8 skopeo copy  --remove-signatures --src-creds myusername:mypassword1 --dest-cert-dir=./certs/ --dest-creds myregistryusername:myregistrypassword1 docker://registry.redhat.io/openshift4/ose-prometheus:v4.10 docker://admin.lab.redhat.com:5000/openshift4/ose-prometheus:v4.10
      
      [root@admin ~]# podman run -v /opt/registry/certs:/certs:Z -v /opt/registry/certs/domain.cert:/certs/domain.cert:Z --rm registry.redhat.io/rhel8/skopeo:8.5-8 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.10 docker://admin.lab.redhat.com:5000/openshift4/ose-prometheus-alertmanager:v4.10

  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-5-dashboard-rhel8","rhceph/rhceph-5-rhel8"]}

関連情報

3.12.7. 非接続インストールのためのプリフライト Playbook の実行

cephadm-preflight.yml Ansible Playbook を使用して、Ceph リポジトリーを設定し、ブートストラップ用にストレージクラスターを準備します。また、podmanlvm2chronydcephadm などのいくつかの前提条件もインストールします。

重要

cephadm-preflight Playbook はサポートされていないため、Red Hat Enterprise Linux 9 ではこの手順をスキップしてください。

プリフライト Playbook は cephadm-ansible インベントリーの hosts ファイルを使用して、ストレージクラスターのすべてのノードを識別します。cephadm-ansiblecephadm-preflight.yml、およびインベントリー hosts ファイルのデフォルトの場所は /usr/share/cephadm-ansible/ です。

以下の例は、一般的なインベントリーファイルの構造を示しています。

例:

host02
host03
host04

[admin]
host01

インベントリーファイルの [admin] グループには、管理者キーリングが保存されるノードの名前が含まれます。

注記

初期ホストをブートストラップする前に、プリフライト Playbook を実行します。

前提条件

  • cephadm-ansible パッケージが Ansible 管理ノードにインストールされている。
  • ストレージクラスター内のすべてのノードへの root レベルのアクセス。
  • パスワードなしの ssh がストレージクラスター内のすべてのホストに設定されます。
  • 以下のリポジトリーが有効なローカルの YUM リポジトリーサーバーにアクセスするように設定されているノード。

    • rhel-8-for-x86_64-baseos-rpms
    • rhel-8-for-x86_64-appstream-rpms
    • rhceph-5-tools-for-rhel-8-x86_64-rpms
注記

ローカル YUM リポジトリーの設定の詳細は、ナレッジベースの記事 Creating a Local Repository and Sharing with Disconnected/Offline/Air-gapped Systems を参照してください。

手順

  1. Ansible 管理ノードの /usr/share/cephadm-ansible ディレクトリーに移動します。
  2. hosts ファイルを開いて編集し、ノードを追加します。
  3. ローカルの YUM リポジトリーを使用するために ceph_origin パラメーターを custom に設定してプリフライト Playbook を実行します。

    構文

    ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=custom" -e "custom_repo_url=CUSTOM_REPO_URL"

    例:

    [ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=custom" -e "custom_repo_url=http://mycustomrepo.lab.redhat.com/x86_64/os/"

    インストールが完了すると、cephadm/usr/sbin/ ディレクトリーに配置されます。

  4. あるいは、--limit オプションを使用して、ストレージクラスターの選択したホストでプリフライト Playbook を実行することができます。

    構文

    ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=custom" -e "custom_repo_url=CUSTOM_REPO_URL" --limit GROUP_NAME|NODE_NAME

    GROUP_NAME は、インベントリーファイルからのグループ名に置き換えます。NODE_NAME は、インベントリーファイルからの特定のノード名に置き換えます。

    例:

    [ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=custom" -e "custom_repo_url=http://mycustomrepo.lab.redhat.com/x86_64/os/" --limit clients
    [ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=custom" -e "custom_repo_url=http://mycustomrepo.lab.redhat.com/x86_64/os/" --limit host02

    注記

    プリフライト Playbook を実行すると、cephadm-ansible は自動的にクライアントノードに chronyd および ceph-common をインストールします。

3.12.8. 非接続インストールの実行

インストールを実行する前に、Red Hat レジストリーにアクセスできるプロキシーホストから Red Hat Ceph Storage コンテナーイメージを取得するか、イメージをローカルレジストリーにコピーして Red Hat Ceph Storage コンテナーイメージを取得する必要があります。

注記

ローカルレジストリーがローカルレジストリーと共に自己署名証明書を使用する場合は、信頼されるルート証明書をブートストラップホストに追加してください。詳細は、非接続インストールのプライベートレジストリーの設定 を参照してください。

注記

Red Hat Ceph Storage 5 は、Red Hat Enterprise Linux 8.4 EUS 以降でサポートされています。

重要

ブートストラッププロセスを開始する前に、使用するコンテナーイメージに cephadm と同じバージョンの Red Hat Ceph Storage があることを確認します。2 つのバージョンが一致しないと Creating initial admin user 段階でブートストラップに失敗します。

前提条件

  • 1 つ以上の稼働中の仮想マシン (VM) またはサーバー。
  • 全ノードへの root レベルのアクセス。
  • パスワードなしの ssh がストレージクラスター内のすべてのホストに設定されます。
  • ストレージクラスターのブートストラップホストでプリフライト Playbook が実行されている。詳細は、非接続インストールのためのプリフライト Playbook の実行 参照してください。
  • プライベートレジストリーが設定され、ブートストラップノードがこれにアクセスできる。詳細は、非接続インストールのプライベートレジストリーの設定 を参照してください。
  • Red Hat Ceph Storage コンテナーイメージがカスタムレジストリーに存在する。

手順

  1. ブートストラップホストにログインします。
  2. ストレージクラスターをブートストラップします。

    構文

    cephadm --image PRIVATE_REGISTRY_NODE_FQDN:5000/CUSTOM_IMAGE_NAME:IMAGE_TAG bootstrap --mon-ip IP_ADDRESS --registry-url PRIVATE_REGISTRY_NODE_FQDN:5000 --registry-username PRIVATE_REGISTRY_USERNAME --registry-password PRIVATE_REGISTRY_PASSWORD

    • PRIVATE_REGISTRY_NODE_FQDN をプライベートレジストリーの完全修飾ドメイン名に置き換えます。
    • CUSTOM_IMAGE_NAME および IMAGE_TAG を、プライベートレジストリーにある Red Hat Ceph Storage コンテナーイメージの名前およびタグに置き換えます。
    • IP_ADDRESS は、cephadm bootstrap の実行に使用するノードの IP アドレスに置き換えます。
    • PRIVATE_REGISTRY_USERNAME を、プライベートレジストリー用に作成するユーザー名に置き換えます。
    • PRIVATE_REGISTRY_PASSWORD をプライベートレジストリーのユーザー名用に作成するパスワードに置き換えます。

      例:

      [root@host01 ~]# cephadm --image admin.lab.redhat.com:5000/rhceph/rhceph-5-rhel8:latest bootstrap --mon-ip 10.10.128.68 --registry-url admin.lab.redhat.com:5000 --registry-username myregistryusername --registry-password myregistrypassword1

      スクリプトが完了するまで数分かかります。スクリプトが完了すると、Red Hat Ceph Storage Dashboard URL へのクレデンシャル、Ceph コマンドラインインターフェイス (CLI) にアクセスするコマンド、およびテレメトリーを有効にする要求が提供されます。

      Ceph Dashboard is now available at:
      
                   URL: https://host01:8443/
                  User: admin
              Password: i8nhu7zham
      
      Enabling client.admin keyring and conf on hosts with "admin" label
      You can access the Ceph CLI with:
      
              sudo /usr/sbin/cephadm shell --fsid 266ee7a8-2a05-11eb-b846-5254002d4916 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
      
      Please consider enabling telemetry to help improve Ceph:
      
              ceph telemetry on
      
      For more information see:
      
              https://docs.ceph.com/docs/master/mgr/telemetry/
      
      Bootstrap complete.

ブートストラッププロセスが完了したら、非接続インストールのカスタムコンテナーイメージの設定変更 を参照してコンテナーイメージを設定します。

関連情報

  • ストレージクラスターが稼働状態になったら、追加のデーモンとサービスの設定の詳細について Red Hat Ceph Storage Operations Guide を参照してください。

3.12.9. 非接続インストールのカスタムコンテナーイメージの設定変更

非接続ノードの最初のブートストラップを実行した後に、モニタリングスタックデーモンのカスタムコンテナーイメージを指定する必要があります。ノードはデフォルトのコンテナーレジストリーにアクセスできないため、スタックデーモンのモニタリングのためのデフォルトのコンテナーイメージを上書きできます。

注記

設定を変更する前に、初期ホストでのブートストラッププロセスが完了していることを確認してください。

デフォルトでは、モニタリングスタックコンポーネントは、プライマリー Ceph イメージに基づいてデプロイされます。ストレージクラスターの切断された環境では、最新の利用可能な監視スタックコンポーネントイメージを使用できます。

注記

カスタムレジストリーを使用する場合は、Ceph デーモンを追加する前に、新しく追加したノードのカスタムレジストリーにログインしてください。

構文

# ceph cephadm registry-login --registry-url CUSTOM_REGISTRY_NAME  --registry_username REGISTRY_USERNAME --registry_password REGISTRY_PASSWORD

例:

# ceph cephadm registry-login --registry-url myregistry --registry_username myregistryusername --registry_password myregistrypassword1

前提条件

  • 1 つ以上の稼働中の仮想マシン (VM) またはサーバー。
  • Red Hat Enterprise Linux 8.4 EUS または Red Hat Enterprise Linux 8.5。
  • 全ノードへの root レベルのアクセス。
  • パスワードなしの ssh がストレージクラスター内のすべてのホストに設定されます。

手順

  1. ceph config コマンドを使用して、カスタムコンテナーイメージを設定します。

    構文

    ceph config set mgr mgr/cephadm/OPTION_NAME CUSTOM_REGISTRY_NAME/CONTAINER_NAME

    OPTION_NAME には、以下のオプションを使用します。

    container_image_prometheus
    container_image_grafana
    container_image_alertmanager
    container_image_node_exporter

    例:

    [root@host01 ~]# ceph config set mgr mgr/cephadm/container_image_prometheus myregistry/mycontainer
    [root@host01 ~]# ceph config set mgr mgr/cephadm/container_image_grafana myregistry/mycontainer
    [root@host01 ~]# ceph config set mgr mgr/cephadm/container_image_alertmanager myregistry/mycontainer
    [root@host01 ~]# ceph config set mgr mgr/cephadm/container_image_node_exporter myregistry/mycontainer

  2. node_exporter を再デプロイします。

    構文

    ceph orch redeploy node-exporter

注記

いずれかのサービスがデプロイされない場合は、ceph orch redeploy コマンドを使用してサービスを再デプロイできます。

注記

カスタムイメージを設定することにより、設定イメージ名とタグのデフォルト値がオーバーライドされますが、上書きされません。デフォルトの値は、更新が利用可能になると変更されます。カスタムイメージを設定すると、自動更新のカスタムイメージを設定したコンポーネントを設定できなくなります。更新をインストールするには、設定イメージ名とタグを手動で更新する必要があります。

  • デフォルト設定の使用に戻す場合は、カスタムコンテナーイメージをリセットできます。ceph config rm を使用して、設定オプションをリセットします。

    構文

    ceph config rm mgr mgr/cephadm/OPTION_NAME

    ceph config rm mgr mgr/cephadm/container_image_prometheus

関連情報