RESTFUL MODULE

RESTful模块通过SSL保护的连接提供REST API对群集状态的访问。

启用
ceph mgr module enable restful

所有与Restful的连接均通过SSL保护。您可以使用以下命令生成自签名证书:

ceph restful create-self-signed-cert

请注意,使用自签名证书,大多数客户端将需要一个标志来允许连接和/或禁止显示警告消息。例如,如果ceph-mgr守护程序在同一主机上,则:

curl -k https://localhost:8003/

为了正确保护部署,应使用由组织的证书颁发机构签名的证书。例如,可以使用类似于以下命令的命令来生成密钥对:

openssl req -new -nodes -x509 \
  -subj "/O=IT/CN=ceph-mgr-restful" \
  -days 3650 -keyout restful.key -out restful.crt -extensions v3_ca

本restful.crt应该再由您组织的CA(认证机构)签署。完成后,可以使用以下命令进行设置:

ceph config-key set mgr/restful/$name/crt -i restful.crt
ceph config-key set mgr/restful/$name/key -i restful.key

实例$name的名称在哪里ceph-mgr(通常是主机名)。如果所有管理器实例都共享同一证书,则可以省略以下$name部分:

ceph config-key set mgr/restful/crt -i restful.crt
ceph config-key set mgr/restful/key -i restful.key
配置IP和端口

由于每个ceph-mgr主机都拥有自己的restful实例,因此也可能需要单独配置它们。IP和端口可以通过配置密钥工具进行更改:

ceph config set mgr mgr/restful/$name/server_addr $IP
ceph config set mgr mgr/restful/$name/server_port $PORT

这些设置也可以在群集范围内配置,而不是特定于管理器。例如:

ceph config set mgr mgr/restful/server_addr $IP
ceph config set mgr mgr/restful/server_port $PORT
创建一个API用户

要创建API用户,请运行以下命令:

ceph restful create-key <username>

例如,创建一个名为的用户 api:

[ceph@ceph03 ~]$ ceph restful create-key api
f6603667-5407-4482-820c-090499458cb4

要列出所有API密钥,请运行以下命令:

[ceph@ceph03 ~]$ ceph restful list-keys
{
  "api": "f6603667-5407-4482-820c-090499458cb4"
}

可以使用curl以使用API测试您的用户,例:

[ceph@ceph03 ~]$ curl -k https://api:f6603667-5407-4482-820c-090499458cb4@192.168.37.7:8003/server

当然,可以使用python这样做:

$ python
>> import requests
>> result = requests.patch(
       'https://<ceph-mgr>:<port>/osd/1',
       json={"up": True},
       auth=("<user>", "<password>")
   )
>> print result.json()

RESTful模块中实现的其他一些端点包括:

  • /config/cluster: GET

  • /config/osd: GET, PATCH

  • /crush/rule: GET

  • /mon: GET

  • /osd: GET

  • /pool: GET, POST

  • /pool/: DELETE, GET, PATCH

  • /request: DELETE, GET, POST

  • /request/: DELETE, GET

  • /server: GET

文档更新时间: 2020-06-01 11:53   作者:子木