docker笔记42-ceph用户管理

     在ceph启用身份验证的时候,必须指定用户名以及密码或者是秘钥环,比如k8s使用ceph做后端存储。

列出系统默认存在的用户

 [root@k8s-node1 ceph]# ceph auth list
 osd.0
	key: AQAtzNVbbXXuMRAA/3D27nFKofAFNg8iwfZ7lg==
	caps: [mon] allow profile osd
	caps: [osd] allow *
osd.1
	key: AQBEzNVbEscVIhAA2XgkcFr/0Ol3zwNR+Xdnvg==
	caps: [mon] allow profile osd
	caps: [osd] allow *

权限解释
class-read: 给用户能够调用类的读⽅法
class-write: 给用户能够调用类 写的⽅法
*.all: 给用户特定的pool读写的权限 ,以及执⾏管理命令的权限
profile osd (monitor only):
授予用户作为 OSD 连接到其他 OSD 或监视集群状态的权限, 授予 OSD 能够处理复制⼼跳流量和状态报告
profile mds (Monitor only) : 给予用户连接mds 的权限
profile bootstrap-osd (Monitor only): 给与用户引导启动 osd 权限,列如批量管理⼯具 ,如 ceph-volume, ceph-deploy
profile rbd-read-only (OSD only): 给予用户对 rdb 镜像只有读的权限
profile bootstrap-mds (Monitor only): 给予用户只有引导启动⼀个元数据服务的权限

获取⼀个用户的权限信息以及 key

[root@k8s-node1 ~]# ceph auth get client.admin
exported keyring for client.admin
[client.admin]
key = AQBavtVb2irGJBAAsbJcna7p5fdAXykjVbxznA==
caps mds = "allow *"
caps mgr = "allow *"
caps mon = "allow *"
caps osd = "allow *"

[root@k8s-node1 ~]# ceph auth export client.admin
export auth(auid = 18446744073709551615 key=AQBavtVb2irGJBAAsbJcna7p5fdAXykjVbxznA== with 4 caps)
[client.admin]
key = AQBavtVb2irGJBAAsbJcna7p5fdAXykjVbxznA==
caps mds = "allow *"
caps mgr = "allow *"
caps mon = "allow *"
caps osd = "allow *"
[root@k8s-node1 ~]#

添加⼀个用户的⽅法

[root@k8s-node1 ~]# ceph auth get-or-create client.li mon 'allow r' osd 'allow rw pool=disk'
[client.li]
key = AQDLrtlbFNYhFBAAnftA0AmtTLvEhDBOxXYxZw==

     ceph auth get-or-create 创建用户,并且返回⼀个秘钥⽂件格式,包括用户和密码如果用户已经存在,则仅仅返回秘钥⽂件格式的用户名和密码。同时也可以添加⼀个 -o 可以将输出保存到特定的⽂件里面去


[root@k8s-node1 ~]# ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=test' -o ringo.txt

    将创建的秘钥传送到其他的节点上去,可以按照自⼰的需求进⾏传递

[root@k8s-node1 ~]#ceph auth get-or-create client.cinder |ssh xxx (主机) tee /ect/ceph/ceph.client.keyring

    这个命令是将创建的 cinder 用户的秘钥传送到特定的主机上。然后在传送的主机的上 修改秘钥的属组属主。

修改用户的权限

[root@k8s-node1 ~]# ceph auth get  client.li
exported keyring for client.li
[client.li]
key = AQDLrtlbFNYhFBAAnftA0AmtTLvEhDBOxXYxZw==
caps mon = "allow r"
caps osd = "allow rw pool=disk"
[root@k8s-node1 ~]# ceph auth caps client.li 'allow rw ' mon
updated caps for client.li

[root@k8s-node1 ~]# ceph auth get  client.li
exported keyring for client.li
[client.li]
key = AQDLrtlbFNYhFBAAnftA0AmtTLvEhDBOxXYxZw==
caps allow rw  = "mon"

删除⼀个 ceph 用户

[root@k8s-node1 ~]# ceph auth del client.li
updated

查看⼀个用户的 key

[root@k8s-node1 ~]# ceph auth print-key client.li
AQDCttlbMmG1JhAAehvXxMytp7WxrcRnEOB7rQ==

导⼊⼀个用户的的 key

[root@k8s-node1 ~]# ceph auth import -i /xxxx/xxx/xxx/client.tom.keyring











请使用浏览器的分享功能分享到微信等