install/v3/install-gitlab.md
Kuboard 支持多种认证方式:
本文描述了如何配置 Kuboard v3 使其与 gitlab.com / gitlab ee / gitlab ce 实现单点登录。
在正式安装 kuboard v3 之前,需做好一个简单的部署计划的设计,在本例中,各组件之间的连接方式,如下图所示:
内网IP:80 访问 Kuboard 的 Web 服务端口 80 和 Kuboard Agent Server 端口 10081。本例子中,假设:
在 gitlab.com (或者 gitlab ee / gitlab ce)创建 Application,如下图所示:
表单填写说明:
| 字段名称 | 字段取值 | 字段说明 |
|---|---|---|
| Name | kuboad-v3 | 应用程序在 GitLab 中的标识,例如,此处填写了 kuboard-v3 |
| Redirect URI | http://外网IP:80/sso/callback | 登录成功后的回调 URL,必须填写绝对路径,且必须指定到 kuboard 的 /sso/callback 路径 |
| Scopes | read_user / openid / profile / email | 应用程序可以访问的 GitLab 接口范围,对于 Kuboard 而言,必须勾选如下几个选项: read_user / openid / profile / email |
完成创建后,您将获得 Application ID 以及 Secret 两个字段的值,如下图所示:
使用如下命令启动 Kuboard v3:
sudo docker run -d \
--restart=unless-stopped \
--name=kuboard \
-p 80:80/tcp \
-p 10081:10081/tcp \
-v /root/kuboard-data:/data \
-e KUBOARD_LOGIN_TYPE="gitlab" \
-e KUBOARD_ENDPOINT="http://内网IP:80" \
-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
-e KUBOARD_ROOT_USER="shaohq" \
-e GITLAB_BASE_URL="http://gitlab.my-company.com" \
-e GITLAB_APPLICATION_ID="7c10882aa46810a0402d17c66103894ac5e43d6130b81c17f7f2d8ae182040b5" \
-e GITLAB_CLIENT_SECRET="77c149bd3a4b6870bffa1a1afaf37cba28a1817f4cf518699065f5a8fe958889" \
-e SSO_REDIRECT_URI="http://kuboard.my-company.com/sso/callback" \
eipwork/kuboard:v3
# 也可以使用镜像 swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3 ,可以更快地完成镜像下载。
# 请不要使用 127.0.0.1 或者 localhost 作为内网 IP \
# Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server \
::: danger
kuboard-agent 知道如何访问 Kuboard Server;/etc/hosts 文件,将不能正常运行;
:::::: tip 参数说明
start-kuboard.sh,后续升级 Kuboard 或恢复 Kuboard 时,需要通过此命令了解到最初安装 Kuboard 时所使用的参数;80 端口,如安装指令的第三行所示,默认映射到了宿主机的 80 端口,您可以根据自己的情况选择宿主机的其他端口;10081 端口 TCP,默认映射到了宿主机的 10081 端口,您可以根据自己的情况选择宿主机的其他端口;/data 目录,默认映射到了宿主机的 /root/kuboard-data 路径,请根据您自己的情况进行调整;KUBOARD_LOGIN_TYPE 为 gitlab (适用于 gitlab.com / gitlab-ee / gitlab-ce);KUBOARD_ENDPOINT 环境变量为访问 Kuboard 界面的 URL;(如 部署计划 中所描述,本例子中,使用 http://内网IP:80 作为通过执行此命令启动的 Kuboard 的访问 URL);此参数不能以 / 结尾;10081,此参数与第 5 行中的宿主机端口应保持一致,修改此参数不会改变容器内监听的端口 10081,例如,如果第 5 行为 -p 30081:10081/tcp 则第 9 行应该修改为 -e KUBOARD_AGENT_SERVER_TCP_PORT="30081";KUBOARD_ROOT_USER,使用该 GitLab 用户登录到 Kuboard 以后,该用户具备 Kuboard 的所有权限;GIBLAB_BASE_URL,(如 部署计划 中所描述,本例子中,使用 http://gitlab.my-company.com 作为通过作为 GitLab 的访问 URL,并假设 GitLab 已经事先准备就绪,如果不指定,该参数默认值为 https://gitlab.com);此参数不能以 / 结尾;GITLAB_APPLICATION_ID,该参数来自于 准备 GitLab 步骤中创建的 GitLab Application 的 Application ID 字段GITLAB_CLIENT_SECRET,该参数来自于 准备 GitLab 步骤中创建的 GitLab Application 的 Secret 字段SSO_REDIRECT_URI,该参数用于从 gitlab 回调到 Kuboard
:::在浏览器中输入 http://外网IP:80,您将被重定向到 GitLab 登录界面;
在 GitLab 登录界面使用 docker run 命令中 KUBOARD_ROOT_USER 参数指定的用户完成登录后,GitLab 将提示您是否授权访问 Kuboard,如下图所示:
点击上图中的 Authorize 按钮后,您将成功登录 Kuboard 界面。
::: tip 浏览器兼容性
<li>请使用 Chrome / FireFox / Safari 等浏览器</li> <li>不兼容 IE 以及以 IE 为内核的浏览器</li>:::
默认情况下,只有 KUBOARD_ROOT_USER 参数指定的用户可以执行 Kuboard 中的所有操作,其他用户通过单点登录进入 Kuboard 系统后,除了退出系统,几乎什么事情也做不了。为了让单点登录的用户获得合适的权限,您需要在 Kuboard 中为对应的用户/用户组授权。请参考 为单点登录的用户/用户组授权