之前一篇《谈一谈 gitlab runner是个什么东东?》已经描述了gitlab-runner的概念、现状和应用场景等。所以此篇文章不在详细叙述概念理论,单讲一讲安装应用时注意的一些事项。




gitlab无法访问页面502 gitlab连不上_服务器


框架

常规部署方式:在每台服务器上安装gitlab-runner并注册,如果服务器很多的话,这种方式管理起来就非常不便了。如下图所示:


gitlab无法访问页面502 gitlab连不上_配置文件_02


优化部署方式:把gitlab-runner集中部署在1台服务器上,我把这种方式成为“中转站”,通过ssh方式远程执行后端web集群服务器的应用。这种方式把脚本可以集中化管理,使用起来非常快捷方便。你需要做的就是把“中转站”和后端server通过ssh方式打通。比起后端每台server都部署gitlab-runner要省事的多。如下图所示:


gitlab无法访问页面502 gitlab连不上_服务器_03


安装

Install GitLab Runner 基于CentOS7


gitlab无法访问页面502 gitlab连不上_配置文件_04


登录gitlab,记下URL和token


gitlab无法访问页面502 gitlab连不上_服务器_05


Register GitLab Runner


gitlab无法访问页面502 gitlab连不上_服务器_06


开启runner


gitlab无法访问页面502 gitlab连不上_git_07


查看gitlab-runner服务


gitlab无法访问页面502 gitlab连不上_服务器_08


查看gitlab上的runner

在gitlab平台上看到runners后表示gitlab-CI和gitlab-runner通讯正常。如下图所示:


gitlab无法访问页面502 gitlab连不上_服务器_09


好了,到这里gitlab-runner安装已经成功。

如果想更加多一点了解gitlab-runner的安装后的细节,那么请继续往下看!

配置文件

默认安装gitlab-runner

  • 目录: /home/gitlab-runner
  • 配置文件:/etc/gitlab-runner/config.toml

当你在gitlab-runner Register时已经填写了基本信息,所以一般配置文件不需要改动,如下图所示:


gitlab无法访问页面502 gitlab连不上_git_10


还有一个重要的配置文件.gitlab-ci.yml,这是个隐藏文件,放在仓库根目录下面,使用git在push到gitlab上后,gitlab-CI会去验证.gitlab-ci.yml内容并调用相应的runner去执行配置文件所指示的命令(一般就是shell指令),如下图所示:


gitlab无法访问页面502 gitlab连不上_配置文件_11


我在这里给出的是一个简单的.gitlab-ci.yml配置,其重要的就是script执行脚本那一段,说白了就是执行deploy_gitweb_GW这个shell脚本,我在这里还带了个参数bao-gw,这个无所谓,看实际应用的需求。

执行shell

原则上,你应该带全路径去执行某个shell脚本,如下

script:- /root/myshell/shell_name.sh

但是,为了配置文件看上去更加简洁化,所以我把shell文件都放在了gitlab-runner默认可执行的目录下面,具体看如下图:


gitlab无法访问页面502 gitlab连不上_配置文件_12


PATH=$PATH:$HOME/.local/bin:$HOME/bin 这样,只要你把shell放在这些目录下面就可以免去在配置文件中带全路径。

ssh连接

也就是使用gitlab-runner账号通过ssh连接到其他服务器进行操作。

  1. su切换到gitlab-runner;
  2. 必须创建/home/gitlab-runner/.ssh 这个目录;
  3. 你可以自己生成公私钥,也可以拿其他的公私钥;
  4. 把公钥放到需要被连接的服务器上去,防火墙允许连接;
  5. ssh -T root@服务器IP,进行第一次ssh验证并保存。

最后

好了,到这里基本配置都已完成了。