使用过宝塔的话就知道 宝塔 安装软件中有 一键式安装Gitlab社区
gitlab 社区

所以安装社区 很简单 点击一下等待结束就可以了

下面我来说说 持续集成 中如何搭建 Gitlab Runner,Runner实际上就是为Gitlab的持续集成指定一个环境。

Gitlab 8.x之后默认集成了Gitlab CI,意味着支持了持续集成相关功能。每一次集成操作都需要对应的runner来跑代码构建、测试、发布等操作。

这里会出现第一个坑 因为Gitlab Runner的版本需要跟Gitlab对应 所以直接安装最新版本的 Runner 可能导致不兼容 最后在注册时候 出现 405 报错
ERROR: Registering runner… failed runner=rokEe4sz status=405 Method Not Allowed
PANIC: Failed to register this runner. Perhaps you are having network problems

所以需要找对版本
查了一下Gitlab8.X对应的Runner版本为1.X,所以这里选择runner 1.11.2版本

准备

在home下创建gitlab-runner目录并进入该目录,后续执行的操作与所有的资源都放在这个目录中

cd /home
mkdir gitlab-runner
cd gitlab-runner/

当然不愿意 使用代码创建的可以直接在宝塔后台中直接创建 赋予权限
后台创建

后续步骤 我比较懒 就不详细些了 配上帮我处理问题的链接
传送门 感谢作者:albert_knag

说说 中间出现的问题吧

1.原先安装的 server 没有删除 提示报错

注册好了的Runner的信息存放在哪儿了呢?
原来,Runner的信息是存放在一个配置文件里面的,配置文件的格式一般是.toml。这个配置文件的存放位置有以下几种情况:

在类Unix操作系统下(0.5.0之后版本) 如果是以root用户身份运行gitlab-ci-multi-runner register,那么配置文件默认是/etc/gitlab-runner/config.toml
如果是以非root用户身份运行gitlab-ci-multi-runner register,那么配置文件默认是~/.gitlab-runner/config.toml 在其他操作系统下以及0.5.0之前版本
配置文件默认在当前工作目录下./config.toml
一般情况下,使用默认的配置文件存放Runner的配置信息就可以了。当然,如果你有更细化的分类需求,你也可以在注册的时候通过-c或–config选项指定配置文件的位置。具体查看register命令的使用方法:gitlab-ci-multi-runner register --help。

问题:如果不运行gitlab-ci-multi-runner register命令,直接在配置文件里面添加Runner的配置信息可以吗?
回答:当然不可以。因为gitlab-ci-multi-runner register的作用除了把Runner的信息保存到配置文件以外,还有一个很重要的作用,那就是向GitLab-CI发出请求,在GitLab-CI中登记这个Runner的信息并且获取后续通信所需要的token。

2.原先安装产生的用户 没有删除 出现提示

3.最重要的是 原先的git 是自动的 所以指向的是自动外网ip (电信没给我外网ip 我用的是花生壳加路由器映射)

所以修改 生成 host 文件在 /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
修改地址

4. 自动部署的脚本
build.sh 思想就是 判断有没有对应的文件夹 有就git 更新 没有 就git clone 一个
添加三个参数 项目git用户名、 项目名、远程分支


#!/bin/bash

if [ $# -ne 3 ]
then
        echo "参数错误!"
        exit 1
else
        deploy_path="所有项目想要在的父目录/$2"
        if [ ! -d "$deploy_path" ]
        then
                project_path="git@你的ssl链接地址:$1/$2.git"
                git clone -b $3 $project_path $deploy_path
        else
                cd $deploy_path
                git pull origin $3
        fi
fi

.gitlab-ci.yml 思想就是 根据分支提交 和tag 触发对应的runner 执行job 进行部署

# 定义 stages 对应的判断
stages:
  - deploy

# 定义 部署测试环境
build_wz:
  stage: deploy
  only:
    - cs
  tags:
    - cs-tag
  script:
    - bash build.sh yft test_pro cs

# 定义 部署正式环境
build_ul1787:
  stage: deploy
  only:
    - zs
  tags:
    - zs-tag
  script:
    - bash build.sh yft test_pro zs

虽然有点low 但凑合凑合还是可以使用的 这里只是提供一个思想
因为使用的是 ssl 登录 所以登录一次后 后续操作就不需要输入账号密码了 不会的可以百度
对于已经完成的项目 你可以删除 runner build 中的对应目录 来释放硬盘资源

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐