🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[toc] ## 对接到Gitlab Gitlab服务可以通过云帮的应用市场进行安装,本文针对在云帮上运行的Gitlab进行介绍。 ### 部署Gitlab应用 由于Gitlab依赖MySQL和Redis服务,因此需要先创建这两个服务(下个版本会优化这个操作,安装Gitlab,自动创建依赖的服务) - 部署 MySQL 5.5.46 - 部署 Redis 2.8.23 - 部署Gitlab ![](https://box.kancloud.cn/c2f062dc03ad1d46f2c3d8e72e47d610_1994x842.png) 给服务起个名字,并选择事先创建好的MySQL和Redis服务。 **注意:** >[warning] Gitlab 首次运行时需要从好雨云市拉取镜像,程序启动时需要导入数据库,做一些初始化操作,需要等待5~10分钟(根据网络、机器配置时间会有所不同)可以通过 日志页面查看部署状态。 安装完成后通过Gitlab应用页面的 “访问” 按钮打开Gitlab页面: <img src="http://7xihe6.com1.z0.glb.clouddn.com/opengitlab.png" width="70%"/> **Gitlab管理员账号:** >[info] >用户名:admin@example.com 密码:Administrator #### 配置Gitlab的ssh协议端口 - 开启多端口 打开Gitlab的“配置页面” 的 “基础信息”段 将“对外端口配置”选择 “多端口开放” <img src="http://7xihe6.com1.z0.glb.clouddn.com/gitlab_mulitport.png" width="70%" /> - 添加ssh端口 <img src="http://7xihe6.com1.z0.glb.clouddn.com/gitlab_addssh.png" width="70%" /> - 开启ssh对外访问 <img src="http://7xihe6.com1.z0.glb.clouddn.com/gitlab_openssh.png" width="70%" /> >[danger] 端口设置完成后需要将Gitlab应用重启。 ### 权限设置 私有云-登录到计算节点 ``` #切换到租户服务目录下 cd /grdata/tenant/73e7e82d5558407696601b8461bcb4f7/service #说明73e7e82d5558407696601b8461bcb4f7为租户id,默认Tab键就可以了 在gitlab应用概览页查看源代码,搜service_id对应的值(如:abc) ``` ![20170327149059799032705.png](http://7xihe6.com1.z0.glb.clouddn.com/20170327149059799032705.png) cd到该目录下 (cd abc)后`ll`一下,可以看到data目录 ### 配置管理节点的ssh config文件 指定到某个git-server使用的私钥, 默认是*, 你也可以按自己的实际情况自行编写 ~~~ cat <<EOF >/etc/goodrain/ssh/config Host * IdentityFile ~/.ssh/goodrain-builder StrictHostKeyChecking no LogLevel ERROR Port 20002 EOF ~~~ - 更改文件权限为rain用户 ~~~ chown -R rain.rain /etc/goodrain/ssh ~~~ - 查看public key 内容 ```bash cat /etc/goodrain/ssh/goodrain-builder.pub ``` - 添加到gitlab用户的ssh-key(路径profile/keys) 将/etc/goodrain/ssh/goodrain-builder.pub的内容添加到gitlab创建demo项目的用户ssh-key列表中。 - 点击添加 SSH KEY <img src="http://7xihe6.com1.z0.glb.clouddn.com/gitlab_sshkey.png" width="70%"/> - 粘贴 管理节点 /etc/goodrain/ssh/goodrain-builder.pub 内容 <img src="http://7xihe6.com1.z0.glb.clouddn.com/gitlab_sshkey2.png" width="70%"/> >[info] 说明 > > ssh-key和 ssh config 是在管理节点上生成并配置,管理节点上的labor和builder程序都是以容器的方式运行,通过挂载的形式将宿主机的/etc/goodrain/ssh 目录挂载到容器内部。详情可以参见 /etc/goodrain/docker-compose.yaml 配置文件。 ### 创建一个demo代码仓库 - 新建项目 <img src="http://7xihe6.com1.z0.glb.clouddn.com/gitlab_add_project.png" width="70%"/> - 输入项目名称,创建私有项目 <img src="http://7xihe6.com1.z0.glb.clouddn.com/gitlab_add_project2.png" width="70%"/> - 仓库中创建一个index.html 文件 <img src="http://7xihe6.com1.z0.glb.clouddn.com/gitlab_add_project3.png" width="70%"/> - 编辑index.html 文件 <img src="http://7xihe6.com1.z0.glb.clouddn.com/gitlab_add_project4.png" width="70%"/> ### 管理节点生成ssh-key 平台通过ssh协议拉取Git 代码仓库。在管理节点生成ssh-key ~~~ # ssh-keygen -t rsa -f /etc/goodrain/ssh/goodrain-builder ..... Your identification has been saved in /etc/goodrain/ssh/goodrain-builder. Your public key has been saved in /etc/goodrain/ssh/goodrain-builder.pub. ..... ~~~ ### 查看Gitlab对外开放的ssh端口号 在应用的高级选项里管理端口,添加SSH端口22(stream),开启外部访问,重启应用。 >[danger] 这里的20002端口是Gitlab对外开放的ssh协议端口,你需要查看你自己的Gitlab端口号,平台会随机分配对外端口 ### 对接Gitlab测试 - 云帮新建应用流程测试 通过应用向导,创建应用,代码仓库地址使用ssh协议私有的地址。 - 通过命令行测试 管理节点执行 ~~~ dps | grep build din <container-id> ls ~/.ssh cd /tmp && git clone <git-url> ~~~