V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
goodraincloud
V2EX  ›  问与答

好雨云帮如何对接 Git Server

  •  
  •   goodraincloud · 2017-04-07 10:02:09 +08:00 · 1679 次点击
    这是一个创建于 2780 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

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

    私有云

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

    对接 GitLab

    通过应用市场进行安装 Gitlab

    安装 GitLab 应用

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

    • 安装 Mysql
    • 安装 Redis
    • 安装 GitLab 默认的管理账号:[email protected]/Administrator

    配置 Gitlab 的 ssh 协议端口

    http(s)和 ssh 的区别:

    • http(s)前者可以随意克隆 git 上项目,不管是谁的;push 项目时需要验证用户名和密码
    • ssh ,克隆项目你必须是项目的拥有者或者管理员,且需要添加 ssh key ; push 无需验证用户名和密码,如果 key 设置了密码,则需要密码(通常没必要),推荐使用 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.

    • 新建一个项目仓库
    • 在仓库里新建一个 index.html 文件并编辑 。
    管理节点测试
    #生成 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),开启对外部访问。

    • 新建项目,将机器的公钥添加到用户的 ssh-key 列表里。
    • 设置用户的 ssh_config 配置,大概格式

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

    公有云

    在公有云搭建 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-

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2894 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:39 · PVG 22:39 · LAX 06:39 · JFK 09:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.