云网牛站
所在位置:首页 > Linux云服务器 > 在Ceph对象存储中启用和配置REST API访问

在Ceph对象存储中启用和配置REST API访问

2020-05-31 15:49:12作者:吴弈达稿源:云网牛站

如果生产中有正在运行的Ceph对象存储集群,则可能需要RESTful API进行管理,与其他系统集成和监视,用于Ceph管理器的RESTful API插件(ceph-mgr)提供了用于与Ceph存储群集进行交互的API。在本文中,我们将向您介绍如何在Ceph Storage集群上启用RESTful API访问以及如何为所需的集成创建用户。Ceph REST API允许您:显示有关监视器和OSD的信息、创建或编辑池、查看和启动OSD上计划的进程、显示集群,监视器和OSD的配置选项、在许多其他操作中。在继续之前,请确保具有正常的Ceph存储群集,以下可用于小规模安装的参考,而不用于繁重的生产工作量。可先参考在Ubuntu 18.04系统上安装Ceph Storage Cluster的方法

 

步骤1:启用RESTful API MGR插件

Ceph Manager守护程序(ceph-mgr)与监视器守护程序一起运行,以提供其他监视和与外部监视和管理系统的接口。我们将在MGR中启用Ceph REST插件。

使用正确完成的ceph配置登录到您的Ceph群集节点,然后运行以下命令以启用RESTful API插件:

# ceph mgr module enable restful

要查看所有可用模块的状态,请使用以下命令:

# ceph mgr module ls

从用户界面:

在Ceph对象存储中启用和配置REST API访问

 

步骤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:1c4dcb01-587b-4558-8878-1209b525de8c@172.21.200.40: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:1c4dcb01-587b-4558-8878-1209b525de8c@172.29.129.140:8003/config/osd

[

 "sortbitwise",

 "recovery_deletes",

 "purged_snapdirs",

 "pglog_hardlimit"

 

相关主题

在Linux系统中使用Curl命令发出REST API请求

精选文章
热门文章