接上一篇的安装完成后需要创建用户,才能登陆平台。安装的时候我采用了在Ansible的hosts文件中定义了HTPasswd文件作为后端的用户身份信息库。安装程序自动生成了数据文件/etc/origin/master/htpasswd。但是此时该文件还是一个空文件,并没有任何用户信息。
1. 这里我通过htpasswd命令来创建用户
# htpasswd -b /etc/origin/master/htpasswd dev dev
这时/etc/origin/master/htpasswd就有内容了。
2. 给dev用户添加集群管理员权限,这样可以访问集群内所有项目
# oc login -u system:admin
# oc adm policy add-cluster-role-to-user cluster-admin dev
# oc login 命令行登陆
# oc logout 命令行退出
这样登陆平台可以显示所有的projects
3. 权限控制
只读用户
# htpasswd -b /etc/origin/master/htpasswd reader reader
# oc login -u system:admin
# oc adm policy add-cluster-role-to-user cluster-reader reader (只能对群集内所有项目进行查看)
# oc adm policy add-role-to-user view reader (只能对当前项目进行查看,别的项目无法显示)
# oc adm policy add-role-to-user view reader -n default (只能对指定项目进行查看,别的项目无法显示,-n后面是项目名称)
上面是直接使用openshift origin存在的role,我们可以自定义创建role(这里参考官方文档例子)
# oc get clusterrole view -o yaml > clusterrole_view.yaml
# cp clusterrole_view.yaml localrole_exampleview.yaml
# vim localrole_exampleview.yaml
# 1. Update kind: ClusterRole to kind: ClusterRole
# 2. Update name: view to name: exampleview
# 3. Remove resourceVersion, selfLink, uid, and creationTimestamp
# oc create -f path/to/localrole_exampleview.yaml -n <project_you_want_to_add_the_local_role_exampleview_to>
Then, to use the current project, run:
oc project <project_you_want_to_add_the_local_role_exampleview_to>
Optionally, annotate it with a description.
To use the new role, run:
oc adm policy add-role-to-user exampleview user2