gitlab 注册runner

向GitLab-CI注册一个Runner需要两样东西:GitLab-CI的url和注册token。 其中,token是为了确定你这个Runner是所有工程都能够使用的Shared Runner还是具体某一个工程才能使用的Specific Runner。 如果要注册Shared Runner,你需要到管理界面的Runners页面里面去找注册token。

进入具体的项目->Setting->CI/CD->Runners settings->Expand,如下图所示:

1.创建一个项目monitor,将代码用SourceTree软件克隆下来,提交代码到master分支,注意要包含2个文件

编辑文件

.gitignore

内容如下:

#IDEA
.idea/

.gitignore文件的作用,就是排除指定的文件,不允许提交

编辑ci文件

.gitlab-ci.yml

内容请参考链接

http://www.py3study.com/Article/details/id/140.html

2.设置分支保护

进入具体的项目->Repository->Protected Branches->Expand

选择master分支,点击Protect按钮,效果如下:

3.设置秘密变量

主要是公钥和私钥,主要是为docker使用的,目标服务器,必须事先添加好公钥,并启用了秘钥认证

进入具体的项目->CI/CD->Secret variables->Expand

添加私钥ID_RSA

添加公钥ID_RSA_PUB

完成之后,效果如下:

4.将公钥加入到开发,测试,线上服务器的~/.ssh/authorized_keys

文件权限为600

下面介绍runner的安装步骤:

这里我是用docker安装的

docker的安装参考

http://www.py3study.com/Article/details/id/111.html

由于服务器不够多,我直接在gitlab服务器安装了

下载runner镜像

# docker pull docker.io/gitlab/gitlab-runner

创建配置文件目录

# mkdir /data/gitlab/order/config

启动一个runner容器

# docker run -d --name gitlab-runner-monitor --restart=always -v "/var/run/docker.sock:/var/run/docker.sock" -v /data/gitlab/order/config:/etc/gitlab-runner gitlab/gitlab-runner:latest

查看docker进程

# docker ps

本地搭建的gitlab,访问域名是testgitlab.baidu.com

docker容器访问gitlab,依赖于宿主机的DNS设置。不能直接对docker设置hosts

需要自己搭建一个DNS服务器,参考链接

http://www.py3study.com/Article/details/id/82.html

这里,我是直接在测试服务器搭建的。

配置文件如下:

vim /etc/unbound/local.d/example.conf

内容如下:

local-zone: "baidu.com." static
local-data: "baidu.com. 86400 IN SOA ns.baidu.com. root 1 1D 1H 1W 1H" 
local-data: "ns.baidu.com. IN A 192.168.1.92"
local-data: "testgitlab.baidu.com. IN A 192.168.1.37"

修改gitlab服务器的DNS指向

vim /etc/resolv.conf
# Generated by NetworkManager
search kuaidihelp.com
nameserver 192.168.1.92
nameserver 202.96.209.5
#nameserver 202.96.209.133

重启nscd服务,如果没有安装nscd,直接用yum安装即可

systemctl restart nscd

测试dns解析是否正常

[root@testgitlab config]# nslookup 
> testgitlab.baidu.com
Server:        192.168.1.92
Address:    192.168.1.92#53

Name:    testgitlab.baidu.com
Address: 192.168.1.37
>

注册runner

# docker exec -it gitlab-runner-monitor gitlab-runner register
Running in system-mode.                            
                                                  
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
#这里写gitlab的访问地址
https://testgitlab.baidu.com/
Please enter the gitlab-ci token for this runner:
#这里写Runners页面的token
peR-***********
Please enter the gitlab-ci description for this runner:
#这里写描述信息(项目名)
[7ab5eaf3d2f8]: monitor
Please enter the gitlab-ci tags for this runner (comma separated):
#tags名
vpc
Whether to run untagged builds [true/false]:
#直接回车
[false]:
Whether to lock the Runner to current project [true/false]:
#直接回车
[true]:
Registering runner... succeeded                     runner=peR-Ujdx
Please enter the executor: docker, kubernetes, shell, ssh, virtualbox, docker+machine, docker-ssh+machine, docker-ssh, parallels:
#输入docker
docker
Please enter the default Docker image (e.g. ruby:2.1):
#输入php
php
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

出现successfully,说明注册完成了

上面只是注册了tags为vpc的(因为测试服务器和线上服务器,是在阿里云的VPC网络里面,请确保runner服务在VPC里面)

还需要注册tags为dev的(公司内部网络)

注册runner

# docker exec -it gitlab-runner-monitor gitlab-runner register

注意,tags为dev

Running in system-mode.                            
                                                  
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
#这里写gitlab的访问地址
https://testgitlab.baidu.com/
Please enter the gitlab-ci token for this runner:
#这里写Runners页面的token
peR-***********
Please enter the gitlab-ci description for this runner:
#这里写描述信息(项目名)
[7ab5eaf3d2f8]: monitor
Please enter the gitlab-ci tags for this runner (comma separated):
#tags名
dev
Whether to run untagged builds [true/false]:
#直接回车
[false]:
Whether to lock the Runner to current project [true/false]:
#直接回车
[true]:
Registering runner... succeeded                     runner=peR-Ujdx
Please enter the executor: docker, kubernetes, shell, ssh, virtualbox, docker+machine, docker-ssh+machine, docker-ssh, parallels:
#输入docker
docker
Please enter the default Docker image (e.g. ruby:2.1):
#输入php
php
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

完成之后,效果如下:

进入具体项目->Overview

新建一个分支

输入develop

点击CI/CD,等待任务完成

点击passed->develop_dev 查看任务执行过程

登录开发服务器

查看文件是否同步了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小车博客

短网址程序YOURLS安装及配置教程与设置中文

3975
来自专栏运维小白

Linux基础(day57)

14.4 exportfs命令 exportfs命令 常用选项 -a 全部挂载或者全部卸载 -r 重新挂载 -u 卸载某一个目录 -v 显示共享目录 以下操作在...

2577
来自专栏飞雪无情的博客

使用Nginx搭建PHP服务器

一般我们都是采用Apache 作为PHP的解析服务器,这次则是采用Nginx这个强大的反向代理服务器来搭建PHP服务器。下面就以Linux发行版Ubuntu为例...

3413
来自专栏哎_小羊

记录Gerrit2.8.4环境迁移、安装、配置以及问题解决

前段时间,由于公司内部调整,需要将原gerrit系统中部分业务拆分迁移到新gerrit系统中,这里我就将整个环境迁移、环境搭建、环境配置、版本选择等做一下记录,...

5439
来自专栏云计算

从零开始写一个运行在Kubernetes上的服务程序

这是一篇对于Go语言和Kubernetes新手来说再适合不过的文章了。文中详细介绍了从代码编写到用容器的方式在Kubernetes集群中发布,一步一步,一行一行...

22811
来自专栏云原生架构实践

JHipster生成微服务架构的应用栈(三)- 业务微服务示例

这里选择Microservice application,所有自定义业务逻辑的微服务都可以选择这个类型。

3502
来自专栏c#开发者

HTML5手机APP开发入(4)

HTML5手机APP开发入(4) 课程内容 完成一个自定义的Component用来展现通讯录用户的明细信息如下图 http://bootsnipp.com/s...

4579
来自专栏一个会写诗的程序员的博客

Android连接 Mysql: 解决mysql-connector-java驱动编译时Dex cannot parse version 52 byte code...等错误

做一个简单的数据库应用,打算直接把客户端和数据库连接起来,省去用java或者php去写后端接口程序。因此想到了在Android端用mysql-connector...

1593
来自专栏云计算教程系列

如何在Debian 9上使用Apt安装Java

Java和JVM(Java的虚拟机)是许多软件所必需的,包括Tomcat,Jetty,Glassfish,Cassandra和Jenkins。

7722
来自专栏happyJared

Docker + Elasticsearch 集群环境搭建

无论是安装包形式还是基于Docker,搭建Elasticsearch集群环境还是较为简单的,实操的时候还遇到过一丢小问题,本文用于记录下操作过程。

5233

扫码关注云+社区

领取腾讯云代金券