好雨云帮如何对接 Git Server

2017-04-07 10:02:09 +08:00
 goodraincloud

前言

云帮目前支持对接 GitLab 、 Gogs 、 Github,或者主流代码托管平台的公开项目,后期会考虑接入其他类型的 Git 服务。

私有云

GitLab 是一个用于仓库管理系统的开源项目,私有云服务里使用比较多的自建 Git 服务。

对接 GitLab

通过应用市场进行安装 Gitlab

安装 GitLab 应用

由于 GitLab 依赖 Mysql 和 Redis ,首先安装 Mysql 和 Redis 应用。

配置 Gitlab 的 ssh 协议端口

http(s)和 ssh 的区别:

待安装完成后,在 GitLab 应用高级选项里添加 SSH 端口 22(stream),开启外部访问,重启应用。

权限配置

管理节点:

docker pull hub.goodrain.com/dc-deploy/console:2017.03
#编辑 docker-compose.yaml 文件,大约在 45 行左右
vi /etc/goodrain/docker-compose.yam
将 image: hub.goodrain.com/dc-deploy/console:2017.02 修改为 image: hub.goodrain.com/dc-deploy/console:2017.03 
#修改完
dc-compose stop console
cclear
dc-compose up -d

计算节点:

#切换到租户服务目录下
cd /grdata/tenant/73e7e82d5558407696601b8461bcb4f7/service
#说明 73e7e82d5558407696601b8461bcb4f7 为租户 id ,默认 Tab 键就可以了

在 gitlab 应用概览页查看源代码,搜 service_id 对应的值(如: abc)

cd 到该目录下 (cd abc)后 ll 一下,可以看到 data 目录

#当前完整路径 pwd
/grdata/tenant/73e7e82d5558407696601b8461bcb4f7(tab 补全)/service/abc(查看源码)/ 
chmod 755 data
# 查看 data 目录权限
ll -a 
drwxr_xr_x 

对接 GitLab

访问 GitLab.

管理节点测试
#生成 ssh-key
ssh-keygen -t rsa -f /etc/goodrain/ssh/goodrain-builder
# 配置 ssh config 文件
cat <<EOF >/etc/goodrain/ssh/config
Host *
  IdentityFile ~/.ssh/goodrain-builder
  StrictHostKeyChecking no
  LogLevel ERROR
  Port 20002
EOF
# 更改权限
chown -R rain.rain /etc/goodrain/ssh

查看公钥并将其添加到 gitlab 用户的 ssh-key(路径 profile/keys) cat /etc/goodrain/ssh/goodrain-builder.pub

## 测试
dps | grep build | awk '{print $1}'
din 容器 id(上述命令执行的结果)
ls ~/.ssh #查看是否有文件
cd /tmp && git clone <git-url 地址>
其他机器测试
ssh-keygen
cat .ssh/id_rsa.pub #添加到 gitlab
nano /etc/ssh/ssh_config
#大概格式
Host 80.gr06cf43.zhengys.1t8zf.goodrain.io #git 地址
  IdentityFile ~/.ssh/id_rsa #私钥完整路径
  StrictHostKeyChecking no
  LogLevel ERROR
  Port 20002 #git ssh 对外开放的端口

#说明一下
如果存在多个 Git 服务,同时还使用 ssh 管理服务,建议在 Host 里指定 git 地址

#测试
git clone 项目 url

对接 Gogs

相对 GitLab 来说, Gogs 安装更加便捷,是一款极易搭建的自助 Git 服务,而且还是国人开发的。直接在应用市场安装 Gogs 即可。 安装完成,在高级选项里新增端口 22(stream),开启对外部访问。

Host 5000.gr06cf43.zhengys.1t8zf.goodrain.io #git 地址
  IdentityFile ~/.ssh/id_rsa #私钥完整路径
  StrictHostKeyChecking no
  LogLevel ERROR
  Port 20002 #git ssh 对外开放的端口

公有云

在公有云搭建 Git 服务和内网自建 Git 服务,对接步骤相同。 公有云新建 Git 步骤同私有云。 云平台 git clone 代码,选择自建 Git ,然后将授权 key 添加 Git 应用的 ssh-key 列表里即可。

windows

打开 Git Bash 或者终端工具(cmder 等)
生成ssh-keygen -t rsa -f ~/.ssh/id_rsa.pub -C "email"
新增或添加配置文件 config (路径 C:\Users\当前用户.ssh/config )

Host 5000.gr06cf43.zhengys.1t8zf.goodrain.io #git 地址
  IdentityFile ~/.ssh/id_rsa #私钥完整路径
  StrictHostKeyChecking no
  LogLevel ERROR
  Port 20002 #git ssh 对外开放的端口

-END-

1604 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/353119

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX