之前一篇《谈一谈 gitlab runner是个什么东东?》已经描述了gitlab-runner的概念、现状和应用场景等。所以此篇文章不在详细叙述概念理论,单讲一讲安装应用时注意的一些事项。
框架
常规部署方式:在每台服务器上安装gitlab-runner并注册,如果服务器很多的话,这种方式管理起来就非常不便了。如下图所示:
优化部署方式:把gitlab-runner集中部署在1台服务器上,我把这种方式成为“中转站”,通过ssh方式远程执行后端web集群服务器的应用。这种方式把脚本可以集中化管理,使用起来非常快捷方便。你需要做的就是把“中转站”和后端server通过ssh方式打通。比起后端每台server都部署gitlab-runner要省事的多。如下图所示:
安装
Install GitLab Runner 基于CentOS7
登录gitlab,记下URL和token
Register GitLab Runner
开启runner
查看gitlab-runner服务
查看gitlab上的runner
在gitlab平台上看到runners后表示gitlab-CI和gitlab-runner通讯正常。如下图所示:
好了,到这里gitlab-runner安装已经成功。
如果想更加多一点了解gitlab-runner的安装后的细节,那么请继续往下看!
配置文件
默认安装gitlab-runner
- 目录: /home/gitlab-runner
- 配置文件:/etc/gitlab-runner/config.toml
当你在gitlab-runner Register时已经填写了基本信息,所以一般配置文件不需要改动,如下图所示:
还有一个重要的配置文件.gitlab-ci.yml,这是个隐藏文件,放在仓库根目录下面,使用git在push到gitlab上后,gitlab-CI会去验证.gitlab-ci.yml内容并调用相应的runner去执行配置文件所指示的命令(一般就是shell指令),如下图所示:
我在这里给出的是一个简单的.gitlab-ci.yml配置,其重要的就是script执行脚本那一段,说白了就是执行deploy_gitweb_GW这个shell脚本,我在这里还带了个参数bao-gw,这个无所谓,看实际应用的需求。
执行shell
原则上,你应该带全路径去执行某个shell脚本,如下
script:- /root/myshell/shell_name.sh
但是,为了配置文件看上去更加简洁化,所以我把shell文件都放在了gitlab-runner默认可执行的目录下面,具体看如下图:
PATH=$PATH:$HOME/.local/bin:$HOME/bin 这样,只要你把shell放在这些目录下面就可以免去在配置文件中带全路径。
ssh连接
也就是使用gitlab-runner账号通过ssh连接到其他服务器进行操作。
- su切换到gitlab-runner;
- 必须创建/home/gitlab-runner/.ssh 这个目录;
- 你可以自己生成公私钥,也可以拿其他的公私钥;
- 把公钥放到需要被连接的服务器上去,防火墙允许连接;
- ssh -T root@服务器IP,进行第一次ssh验证并保存。
最后
好了,到这里基本配置都已完成了。