ウェブサイト検索

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 管理者ガイド

関連記事: