3.12. 新しいストレージクラスターのブートストラップ
cephadm
ユーティリティーは、ブートストラッププロセス中に以下のタスクを実行します。
- ローカルノード上に新しい Red Hat 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-exporter
やalert-manager
などのその他のツールを使用して、基本的な監視スタックをデプロイします。
非接続インストールを実行している場合は、非接続インストールの実行 を参照してください。
新しいストレージクラスターで実行する既存の Prometheus サービスがある場合、または Rook で Ceph を実行している場合は、cephadm bootstrap
コマンドで --skip-monitoring-stack
オプションを使用します。このオプションは、後で手動で設定できるように、基本的なモニタリングスタックを迂回します。
監視スタックをデプロイする場合は、Red Hat Ceph Storage Operations Guide の Ceph 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.
関連情報
- 推奨のブートストラップコマンドオプションの詳細は、推奨される cephadm bootstrap コマンドのオプション を参照してください。
- bootstrap コマンドで使用できるオプションの詳細は、ブートストラップコマンドのオプション を参照してください。
- JSON ファイルを使用してブートストラッププロセスのログインクレデンシャルが含まれるようにする方法は、JSON ファイルを使用したログイン情報の保護 を参照してください。
3.12.1. 推奨される cephadm bootstrap コマンドのオプション
cephadm bootstrap
コマンドには、ファイルの場所の指定、ssh
の設定、パスワードの設定、およびその他の初期設定タスクの実行を可能にする複数のオプションがあります。
Red Hat は、cephadm bootstrap
にコマンドオプションの基本セットを使用することを推奨します。初期クラスターの稼働後に追加オプションを設定できます。
以下の例は、推奨されるオプションを指定する方法を示しています。
構文
cephadm bootstrap --ssh-user USER_NAME --mon-ip IP_ADDRESS --allow-fqdn-hostname --registry-json REGISTRY_JSON
例
[root@host01 ~]# cephadm bootstrap --ssh-user ceph-admin --mon-ip 10.10.128.68 --allow-fqdn-hostname --registry-json /etc/mylogin.json
root ユーザー以外は、sudo アクセスを持つ Ansible ユーザーの作成 セクションおよび Ansible でのパスワードレス SSH の有効化 セクションを参照してください。
関連情報
-
--registry-json
オプションの詳細は、JSON ファイルを使用したログイン情報の保護 を参照してください。 -
利用可能なすべての
cephadm bootstrap
オプションの詳細は、ブートストラップコマンドのオプション を参照してください。 - root 以外のユーザーとしてストレージクラスターをブートストラップする方法は、root 以外のユーザーでのストレージクラスターのブートストラップ を参照してください。
3.12.2. JSON ファイルを使用したログイン情報の保護
ストレージ管理者は、ログインおよびパスワード情報を JSON ファイルに追加し、ブートストラップするために JSON ファイルを参照することがあります。これにより、ログインクレデンシャルが公開されないように保護されます。
cephadm --registry-login
コマンドで JSON ファイルを使用することもできます。
前提条件
- 最初の Ceph Monitor コンテナーの IP アドレス。これはストレージクラスターの最初のノードの IP アドレスでもあります。
-
registry.redhat.io
へのログインアクセス。 -
少なくとも 10 GB の空き容量がある
/var/lib/containers/
。 - 全ノードへの root レベルのアクセス。
手順
JSON ファイルを作成します。この例では、ファイルの名前は
mylogin.json
です。構文
{ "url":"REGISTRY_URL", "username":"USER_NAME", "password":"PASSWORD" }
例
{ "url":"registry.redhat.io", "username":"myuser1", "password":"mypassword1" }
ストレージクラスターをブートストラップします。
構文
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 ノードにするノードにインストールされます。
手順
- ブートストラップホストにログインします。
ストレージクラスターのサービス設定の
.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
--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) にアクセスするコマンド、およびテレメトリーを有効にする要求が提供されます。
- ストレージクラスターが稼働状態になったら、追加のデーモンとサービスの設定の詳細について Red Hat Ceph Storage Operations Guide を参照してください。
関連情報
- bootstrap コマンドで使用できるオプションの詳細は、ブートストラップコマンドのオプション を参照してください。
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
アクセス。
手順
ブートストラップノードで
sudo
に変更します。構文
su - SSH_USER_NAME
例
[root@host01 ~]# su - ceph Last login: Tue Sep 14 12:00:29 EST 2021 on pts/0
ブートストラップノードに対して SSH 接続を確立します。
例
[ceph@host01 ~]# ssh host01 Last login: Tue Sep 14 12:03:29 EST 2021 on pts/0
オプション:
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
関連情報
-
利用可能なすべての
cephadm bootstrap
オプションの詳細は、ブートストラップコマンドのオプション を参照してください。 - Ansible を使用してルートレスクラスターのブートストラップを自動化する方法の詳細については、ナレッジベースの記事 Red Hat Ceph Storage 5 rootless deployment Using ansible ad-hoc commands を参照してください。
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 コマンドで使用する |
--cluster-network NETWORK_CIDR |
内部クラスタートラフィック用に NETWORK_CIDR で定義されるサブネットを使用します。これは CIDR 表記で指定されます。例: |
--mon-id MON_ID | MON_ID という名前のホストでブートストラップします。デフォルト値はローカルホストです。 |
--mon-addrv MON_ADDRV | mon IP (例: [v2:localipaddr:3300,v1:localipaddr:6789]) |
--mon-ip IP_ADDRESS |
|
--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-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 レベルのアクセス。
手順
- パブリックネットワークとクラスターノードの両方にアクセスできるノードにログインします。
ノードを登録します。プロンプトが表示されたら、適切な Red Hat カスタマーポータルの認証情報を入力します。
例
[root@admin ~]# subscription-manager register
最新のサブスクリプションデータをプルします。
例
[root@admin ~]# subscription-manager refresh
Red Hat Ceph Storage で利用可能なサブスクリプションのリストを表示します。
例
[root@admin ~]# subscription-manager list --available --all --matches="*Ceph*"
Red Hat Ceph Storage の利用可能なサブスクリプションのリストから Pool ID をコピーします。
サブスクリプションを割り当て、ソフトウェアエンタイトルメントにアクセスします。
構文
subscription-manager attach --pool=POOL_ID
POOL_ID を前のステップで特定したプール ID に置き換えます。
デフォルトのソフトウェアリポジトリーを無効にし、サーバーおよび追加のリポジトリーを有効にします。
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
podman
パッケージおよびhttpd-tools
パッケージをインストールします。例
[root@admin ~]# dnf install -y podman httpd-tools
プライベートレジストリーのフォルダーを作成します。
例
[root@admin ~]# mkdir -p /opt/registry/{auth,certs,data}
レジストリーは
/opt/registry
に保存され、ディレクトリーはレジストリーを実行しているコンテナーにマウントされます。-
auth
ディレクトリーは、レジストリーが認証に使用するhtpasswd
ファイルを保存します。 -
certs
ディレクトリーは、レジストリーが認証に使用する証明書を保存します。 -
data
ディレクトリーはレジストリーイメージを保存します。
-
プライベートレジストリーにアクセスするための認証情報を作成します。
構文
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
-
自己署名証明書を作成します。
構文
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を返します。
domain.cert
へのシンボリックリンクを作成し、skopeo
がファイル拡張子.cert
の証明書を特定できるようにします。例
[root@admin ~]# ln -s /opt/registry/certs/domain.crt /opt/registry/certs/domain.cert
プライベートレジストリーノードの信頼済みリストに証明書を追加します。
構文
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
インストールのためにプライベートレジストリーにアクセスする任意のノードに証明書をコピーし、信頼されるリストを更新します。
例
[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
ローカルのセキュアなプライベートレジストリーを起動します。
構文
[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 でプライベートレジストリーを起動し、レジストリーを実行するコンテナーにレジストリーディレクトリーのボリュームをマウントします。
ローカルレジストリーノードで、
registry.redhat.io
がコンテナーレジストリーの検索パスにあることを確認します。/etc/containers/registries.conf
ファイルを編集するために開き、registry.redhat.io
をunqualified-search-registries
リストに追加します (存在しない場合)。例
unqualified-search-registries = ["registry.redhat.io", "registry.access.redhat.com", "registry.fedoraproject.org", "registry.centos.org", "docker.io"]
Red Hat カスタマーポータルの認証情報を使用して
registry.redhat.io
にログインします。構文
podman login registry.redhat.io
以下の 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
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"]}
関連情報
- さまざまなイメージの Ceph パッケージバージョンの詳細は、Red Hat Ceph Storage リリースと対応する Ceph パッケージバージョンとは何ですか ? のナレッジベースソリューションを参照してください。
3.12.7. 非接続インストールのためのプリフライト Playbook の実行
cephadm-preflight.yml
Ansible Playbook を使用して、Ceph リポジトリーを設定し、ブートストラップ用にストレージクラスターを準備します。また、podman
、lvm2
、chrony
、および cephadm
などのいくつかの前提条件もインストールします。
cephadm-preflight
Playbook はサポートされていないため、Red Hat Enterprise Linux 9 ではこの手順をスキップしてください。
プリフライト Playbook は cephadm-ansible
インベントリーの hosts
ファイルを使用して、ストレージクラスターのすべてのノードを識別します。cephadm-ansible
、cephadm-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 を参照してください。
手順
-
Ansible 管理ノードの
/usr/share/cephadm-ansible
ディレクトリーに移動します。 -
hosts
ファイルを開いて編集し、ノードを追加します。 ローカルの 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/
ディレクトリーに配置されます。あるいは、
--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
は自動的にクライアントノードにchrony
および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 コンテナーイメージがカスタムレジストリーに存在する。
手順
- ブートストラップホストにログインします。
ストレージクラスターをブートストラップします。
構文
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
がストレージクラスター内のすべてのホストに設定されます。
手順
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
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
関連情報
- 非接続インストールの実行の詳細は、非接続インストールの実行 を参照してください。