GitLab私服及CI环境搭建

        一直以来我们的代码都是托管在公共的gitlab上,代码pull/push慢,但是还能使用,所以就一直没想过去搭建gitlab私服。正好上级感觉现在发布新版本流程比较繁琐,想要简化流程,所以我就去搭建一套CI环境。虽然我以前使用Jenkins搭建过CI,但是这次我想尝试一下GitLab集成的CI,于是我在网络上查询了下GitLab-CI,发现它能够满足我的需求,正好能够一起把代码托管到内网服务器,以后访问也快的多。
        由于我们公司的机器都是window系统,所以最开始我是借助Docker for window搭建GitLab私服,结果遇到个坑(文件系统不兼容,导致GitLab服务一直在卡启动中无法访问),于是我放弃了在window上搭建GitLab的想法。我把机器重装了centos7.2 64bit系统,然后按照官方教程很顺利的安装了GitLab-ee版本(默认集成了CI),第一次访问GitLab需要重置root密码,然后到Overview下的Runner去查看token
GitLab私服及CI环境搭建_第1张图片
        现在可以配置CI环境了,第一步就是去安装Runner,这个官方教程说的也很清楚,按照它的步骤就能安装成功。安装成功之后就可以把Runner注册到GitLab上,注册的时候根据提示填写信息即可。注册成功之后就可以在上图中看到一条对应的Runner记录。然后点击“编辑”,去关联项目。
GitLab私服及CI环境搭建_第2张图片
        然后在上一步关联的项目根路径下新建.gitlab-ci.yml文件,在文件中定义CI具体流程(构建、测试、打包、部署、发布等),要保证tags与Runner的tags一致,不然不会执行
GitLab私服及CI环境搭建_第3张图片
        在部署环节我还遇到一个坑,上面说过我是在内网搭建的GitLab,Runner也是在内网安装的,但是我们线上的服务器都是阿里云的,所以在本地打包的文件需要部署到线上服务器,这就需要文件传输,我使用的是scp命令做文件传输,可是速度非常慢,只能达到400KB/S,一个文件需要4分钟才能传输完成,一次新版本发布10个左右的文件,这样算下来还没有手工部署来的快。网上有很多人反映scp传输慢,并提出了各种方法,我尝试都不能解决我的问题,所以我直接把Runner安装在一台线上服务器,然后通过内网穿透注册到内网的GitLab服务,然后在这台外网服务安装Git/Maven服务,直接线上打包,然后通过内网传输给其他服务器。
        在外网注册Runner时我还遇到另一个坑,由于GitLab是在内网安装的,所以在安装时配置的EXTERNAL_URL是一个内网地址,导致外网Runner在拉取代码时报错,所以需要修改EXTERNAL_URL,然后重新注册Runner就没事了。另外第一次构建maven需要下载很多依赖,所以最好把job超时时间设置大些。

你可能感兴趣的:(运维)