如果生产中有正在运行的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 从用户界面:
步骤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"
相关主题 |