Ceph Object Storage での REST API アクセスの有効化と構成 |
実稼働環境で Ceph Object Storage クラスターを実行している場合は、管理、他のシステムとの統合、および監視のために RESTful API が必要になる場合があります。 Ceph Manager 用の RESTful API プラグイン (ceph-mgr) は、Ceph Storage クラスターと対話するための API を提供します。
このガイドでは、Ceph Storage クラスターで RESTful API アクセスを有効にし、必要な統合のためのユーザーを作成する方法を説明します。続行する前に、Ceph Storage Cluster が動作していることを確認してください。以下のガイドは、深刻な運用ワークロードではなく、小規模なセットアップの参考として使用できます。
CentOS 8 に Ceph 15 (Octopus) クラスターをインストールする
Ceph Storage Cluster を Ubuntu 18.04 にインストールする方法
Ceph REST API を使用すると、次のことが可能になります。
- モニターとOSDに関する情報を表示します
- プールを作成または編集する
- OSD でスケジュールされたプロセスを表示および開始する
- クラスター、モニター、OSD の構成オプションを表示します。
- 他の多くの操作の中で
ステップ 1: RESTful API MGR プラグインを有効にする
Ceph Manager デーモン (ceph-mgr) は監視デーモンと並行して実行され、追加の監視と外部監視および管理システムへのインターフェイスを提供します。 MGR で Ceph REST プラグインを有効にします。
ceph 構成が正しく行われた状態で Ceph Cluster ノードにログインし、次のコマンドを実行して RESTful API プラグインを有効にします。
# ceph mgr module enable restful
利用可能なすべてのモジュールのステータスを確認するには、次のコマンドを使用します。
# ceph mgr module ls
UI から:
ステップ 2: API エンドポイントの SSL 証明書を構成する
このモジュールは、mgr が実行されているホスト上のすべての IPv4 および IPv6 アドレスのポート 8003 で HTTPS リクエストを受け入れます。別途設定しない限り、これがデフォルト設定です。 API エンドポイントを使用できるようにするには、SSL 証明書を構成する必要があります。
会社によって署名された有効な証明書がない場合は、次のコマンドを使用して自己署名証明書を生成します。
# ceph restful create-self-signed-cert
構成が更新されると、サービスは自動的に開始されます。正常に動作していることを確認するには、curl コマンドを使用してアクティブな MGR ノードでテストします。
# curl -k https://localhost:8003/
{
"api_version": 1,
"auth": "Use \"ceph restful create-key <key>\" to create a key pair, pass it as HTTP Basic auth to authenticate",
"doc": "See /doc endpoint",
"info": "Ceph Manager RESTful API server"
ファイアウォールを使用する場合は、アクティブな ceph-mgr デーモンを持つノードで 8003 ポートが有効になっていることを確認してください。次のように確認します。
# ceph -s
# firewall-cmd --add-port=5000/tcp --permanent
# firewall-cmd --reload
適切に署名された証明書がある場合は、次のコマンドを使用してそれらを適用します。
ceph config-key set mgr/restful/crt -i restful.crt
ceph config-key set mgr/restful/key -i restful.key
どこ :
- restful.crt は、適用する証明書の名前です。
- restful.key は、証明書で使用されるキーの名前です。
ステップ 3: 基本認証を使用して API HTTP ユーザーを作成する
API アクセスにはユーザーが必要です。 HTTP ユーザーを作成し、HTTP 基本認証用のパスワードを生成しましょう。
コマンド構文は次のとおりです。
# ceph restful create-key <username>
cephadmin という名前のユーザーを作成します。
# ceph restful create-key cephadmin
1c4dcb01-587b-4558-8878-1209b525de8c
次のコマンドを使用すると、いつでもユーザー名とキーを確認できます。
# ceph restful list-keys
{
"cephadmin": "1c4dcb01-587b-4558-8878-1209b525de8c"
}
認証情報が生成されたら、curl を使用して API アクセスを検証できます。コマンド構文は次のとおりです。
https://<username>:<password-key>@<mgr-node>:<APIPort>/<REQUEST>
以下に例を示します。
# curl -k https://cephadmin:[email :8003/server
[
{
"ceph_version": "ceph version 14.2.7 (3d58626ebeec02d8385a4cefb92c6cbc3a45bfe8) nautilus (stable)",
"hostname": "cephmon01.example.com",
"services": [
{
"id": "cephmon01",
"type": "mgr"
},
{
"id": "cephmon02",
"type": "mon"
},
{
"id": "cephmon03",
"type": "rgw"
}
]
},
..........
# url -k https://cephadmin:[email :8003/config/osd
[
"sortbitwise",
"recovery_deletes",
"purged_snapdirs",
"pglog_hardlimit"
参照:
- Ceph REST モジュールのページ
- ceph-mgr 管理者ガイド