在Ceph对象存储中启用和配置REST API访问
如果在生产中有运行Ceph对象存储群集,则可能需要为管理提供RESTful API,与其他系统和监控集成。
Ceph Manager(Ceph-MGR)的RESTful API插件提供了一个用于与Ceph存储群集交互的API。
在本教程中,我们将向我们展示如何在Ceph存储群集上启用RESTful API访问,并为我们需要的任何集成创建用户。
在继续之前,请确保我们有一个工作的Ceph存储群集。
Ceph Rest API允许我们:显示有关监视器和OSDSCreate或者编辑PoolsView的信息,并在群集,监视器和OSDSamong的OSDSshow配置选项上启动计划进程许多其他操作
第1步:启用RESTFUL API MGR插件
Ceph Manager守护程序(Ceph-Mgr)沿着监视守护程序运行,为外部监控和管理系统提供额外的监控和接口。
我们将在MGR中启用Ceph Rest插件。
使用Ceph配置登录Ceph群集节点,正确完成,并运行以下命令以启用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"
如果使用防火墙,请确保使用Active 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是vallyrestful的证书的名称.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:Hyman@theitroad: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:Hyman@theitroad:8003/config/osd [ "sortbitwise", "recovery_deletes", "purged_snapdirs", "pglog_hardlimit"