docker筆記42-ceph使用者管理

czxin788發表於2018-10-31

     在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











來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28916011/viewspace-2217905/,如需轉載,請註明出處,否則將追究法律責任。

相關文章