使用过宝塔的话就知道 宝塔 安装软件中有 一键式安装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 中的对应目录 来释放硬盘资源