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 作者:子木