前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gitlab 注册runner

gitlab 注册runner

作者头像
py3study
发布2018-08-02 15:49:18
2.7K1
发布2018-08-02 15:49:18
举报
文章被收录于专栏:python3python3

向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个文件

编辑文件

代码语言:javascript
复制
.gitignore

内容如下:

代码语言:javascript
复制
#IDEA
.idea/

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

编辑ci文件

代码语言:javascript
复制
.gitlab-ci.yml

内容请参考链接

https://cloud.tencent.com/developer/article/1175082

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的安装参考

https://cloud.tencent.com/developer/article/1175000

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

下载runner镜像

代码语言:javascript
复制
# docker pull docker.io/gitlab/gitlab-runner

创建配置文件目录

代码语言:javascript
复制
# mkdir /data/gitlab/order/config

启动一个runner容器

代码语言:javascript
复制
# 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进程

代码语言:javascript
复制
# docker ps

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

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

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

https://cloud.tencent.com/developer/article/1174686

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

配置文件如下:

代码语言:javascript
复制
vim /etc/unbound/local.d/example.conf

内容如下:

代码语言:javascript
复制
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指向

代码语言:javascript
复制
vim /etc/resolv.conf
代码语言:javascript
复制
# Generated by NetworkManager
search kuaidihelp.com
nameserver 192.168.1.92
nameserver 202.96.209.5
#nameserver 202.96.209.133

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

代码语言:javascript
复制
systemctl restart nscd

测试dns解析是否正常

代码语言:javascript
复制
[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

代码语言:javascript
复制
# docker exec -it gitlab-runner-monitor gitlab-runner register
代码语言:javascript
复制
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

代码语言:javascript
复制
# docker exec -it gitlab-runner-monitor gitlab-runner register

注意,tags为dev

代码语言:javascript
复制
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 查看任务执行过程

登录开发服务器

查看文件是否同步了

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-01-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档