gitlab之gitlab-ci和gitlab-runner<一>

时间:2022-04-15 11:14:46

一、概述

gitlab是开源代码托管软件,有ce和ee两种版本,一般情况下ce完全能满足企业使用,如果不差钱可以使用ee版本,这里使用的是ce版。之前也一直在做CI/CD,最开始采用gitlab+webhook+jenkins,但是这种组合略显笨重,后来经过一番探索原来gitlab早就自己做好了这一切,那就是gitlab-ci和gitlab-runner,gitlab-ci在安装gitlab的时候默认已经安装了,所以无需再次安装只需要安装一下gitlab-runner。

!gitlab-ci就是持续集成,每一次push代码,就触发一次构建流程包括测试、编译、(打包)、部署等一系列的内容,这个流程是pipeline执行一系列的脚本构成,根据自己的项目需求制作相应的流程和编写相关的脚本,.gitlab-ci.yml的脚本解析就由它来负责。

!gitlab-runner是脚本执行的地方,push代码后,gitlab-ci会解析.gitlab-ci.yml,然后根据pipeline规则在相应的runner上执行相应的脚本。

!.gitlab-ci.yml是在git项目的根目录下的一个文件,记录了一系列的阶段和执行规则。GitLab-CI在push后会解析它,根据里面的内容调用runner来运行,项目使用gitlab-ci要在相应的项目里面加上这个文件。

二、部署

1、安装gitlab

安装环境centos7

使用yum的方式安装gitlab-ce,设置repo:

#cat /etc/yum.repos.d/gitlab-ce.repo

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=
enabled=

#yum  provides gitlab-ce

选择想要使用的版本尽享安装即可,这里我安装的是gitlab-ce-11.2.2-ce.0.el7.x86_64。

#yum -y install gitlab-ce-11.2.2-ce.0.el7.x86_64

结下来就是进行初始化、启动,首先要修改初始化文件,一般是在/etc/gitlab/gitlab.rb,主要是修改如下几项:

external_url 'http://10.2.6.7',#这个是gitlab url,就是以后访问要使用的,所以一定要设置好,严格按照格式设置,"http://"不能省略,生产环境建议使用域名。

邮件设置:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "ci@app.com"
gitlab_rails['smtp_password'] = "1qaz*@WSX"
gitlab_rails['smtp_domain'] = "app.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false

gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'ci@app.com'
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
gitlab_rails['gitlab_email_reply_to'] = 'ci@app.com'
gitlab_rails['gitlab_email_subject_suffix'] = 'dd'

gitlab_rails['time_zone'] = 'Asia/Shanghai'

还有就是数据目录存放,默认存放到/var/lib/gitlab下面,时间久了可能导致磁盘空间不够用,可以修改为其他较大空间的目录。

启动:

#gitlab-ctl reconfigure

启动完成后,查看一下状态:

gitlab之gitlab-ci和gitlab-runner<一>

出现以上证明启动成功,使用上面设置的external_url 'http://10.2.6.7',访问一下,生产环境建议设置一个域名,使用nginx代理一下。

首次访问会提示更新密码,设置一个新的密码就可以了,默认用户名root。

2、安装gitlab-runner

#curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

#yum provides gitlab-runner

选择匹配gitlab-ci的版本,这里选择gitlab-runner-11.2.0-1.x86_64

#yum -y install gitlab-runner-11.2.0-1.x86_64

2.1、注册gitlab-runner

参考:https://docs.gitlab.com/runner/register/index.html

根据提示填写即可。

#gitlab-runner register

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://10.42.68.77
Please enter the gitlab-ci token for this runner:
_9cgUcGks7zQ-2swKmhL
Please enter the gitlab-ci description for this runner:
[ui]: sp
Please enter the gitlab-ci tags for this runner (comma separated):
ll
Registering runner... succeeded runner=_9cgUcGk
Please enter the executor: parallels, docker-ssh+machine, kubernetes, docker, docker-ssh, virtualbox, docker+machine, shell, ssh:
docker
Please enter the default Docker image (e.g. ruby:2.1):
apline:latest

#这里的url填写gitlab的访问地址,token是在gitlab管理页面获得:

gitlab之gitlab-ci和gitlab-runner<一>

executor选择使用docker,上面设置完成后就注册完成了。

gitlab之gitlab-ci和gitlab-runner<一>

接下来是修改配置文件,runner注册完成后,会生成一个配置文件/etc/gitlab-runner/config.toml.

concurrent =
check_interval = [[runners]]
name = "ui"
url = "http://10.42.68.77"
token = "927ad1dacc341bc977836856a8533e"
executor = "docker"
cache_dir = "/data/tmp/cache"
[runners.docker]
tls_verify = false
image = "docker:dind"
privileged = true
disable_cache = false
volumes = ["/var/run/docker.sock:/var/run/docker.sock","/data/tmp/cache:/data/tmp/cache"]
cache_dir = "/data/tmp/cache"
shm_size =
[runners.cache]

concurrent = 1

#设置一个runner并发jobs,concurrent = 20,表示这个runner可以同时最多执行20个job。

下面贴一份dind的配置:

cat /etc/gitlab-runner/config.toml

concurrent =
check_interval = [[runners]]
name = "kn2-saturn"
url = "http://glab.nget.com/"
token = "443ffc1bdaa0be1983c49b88e61"
executor = "docker"
cache_dir = "/data/tmp/cache"
[runners.docker]
tls_verify = false
image = "docker:dind"
privileged = true
disable_cache = false
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/data/tmp/cache:/data/tmp/cache"]
cache_dir = "/data/tmp/cache"
shm_size =
[runners.cache] [[runners]]
name = "kn2-shared"
url = "http://glab.nget.com/"
token = "53abc8c08c14f386a40dd807853bc6"
executor = "docker"
cache_dir = "/data/tmp/cache"
environment = ["httpProxy=http://10.4.15.13:8118", "no_proxy=localhost,.local,127.0.0.1,0.0.0.0,registry.npm.taobao.org"]
[runners.docker]
tls_verify = false
image = "docker:dind"
privileged = true
disable_cache = false
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/data/tmp/cache:/data/tmp/cache"]
cache_dir = "/data/tmp/cache"
shm_size =
[runners.cache] [[runners]]
name = "kn2,kubernetes"
url = "http://gitb.nget.com"
token = "ce6d7c6c6bf96c05dd3ed9a3edb0"
executor = "kubernetes"
[runners.cache]
[runners.kubernetes]
host = ""
bearer_token_overwrite_allowed = false
image = ""
namespace = ""
namespace_overwrite_allowed = ""
privileged = true
service_account_overwrite_allowed = ""
pod_annotations_overwrite_allowed = ""
[runners.kubernetes.volumes]

gitlab之gitlab-ci和gitlab-runner<一>的更多相关文章

  1. 在gitlab上setup CI

    安装gitlab runner docker pull gitlab/gitlab-runner 启动gitlab runner docker run -d --name gitlab-runner ...

  2. 如何搭建基于Docker的gitlab服务器集成CI&sol;CD实现DEVOPS&lpar;完整版&rpar;

    From this lesson you will learn about 1,How to install and configure a docker based gitlab server 2, ...

  3. gitlab自动化部署CI案例

    参考: https://blog.csdn.net/hxpjava1/article/details/78514999   (简单操作) https://blog.csdn.net/wh211212/ ...

  4. gitlab&plus;jenkins&plus;tomcat CI&sol;CD 部署

    整个项目的框架为: gitlab的安装与使用(Centos7) gitlab的安装 新建yum源 vim /etc/yum.repos.d/gitlab-ce.repo [gitlab-ce] nam ...

  5. git学习------>在CenterOS系统上安装GitLab并自定义域名访问GitLab管理页面

    目前就职的公司一直使用SVN作为版本管理,现在打算尝试从SVN迁移到Git.安排我来预言并搭建好相关的环境以及自己尝试使用Git.今天我就尝试在Center OS系统上安装GitLab,现在在此记录一 ...

  6. 使用docker安装gitlab,两台电脑gitlab库相互迁移

    原文来自合伙呀 https://hehuoya.com/2019/09/30/gitlab-docker/ Docker  for gitlab brew cask install docker do ...

  7. Docker DevOps实战:GitLab&plus;Jenkins(1)- GitLab容器搭建、使用SourceTree pull&sol;push项目

    GitLab容器搭建 # 创建GitLab容器# --restart always #重启,容器自动重启# --privileged=true #容器内使用root权限 [root@localhost ...

  8. 使用gitlab&comma; jenkins搭建CI(持续集成&rpar;系统&lpar;1&rpar; -- 准备环境

    1. 环境设计 搭建一个从开发到测试知道发布上线可以自动换完成的CI系统.这个系统中包含4个环境. 开发(dev)环境: 码农使用. 测试(test)环境: 测试人员使用. 预发布(prepublis ...

  9. KubeSphere CI&sol;CD&plus;GitLab&plus;Harbor将Spring Boot项目部署至Kubernetes

    上一篇文章分享了如何在 KubeSphere 对公共的代码仓库 GitHub 和镜像仓库 DockerHub 创建流水线,本文将继续使用 KubeSphere,基于 Harbor 和 GitLab 创 ...

  10. Gitlab &plus; Jenkins 的 CI 实践

    0x00 事件 为了开发人员更高效的更新应用而采取的 CI 方式实践. 0x01 过程记录 1.Jenkins 设置 安装插件 Gitlab Hook Plugin Build Authorizati ...

随机推荐

  1. Java final自变量

    Java 1.1 允许我们将自变量设成final 属性,方法是在自变量列表中对它们进行适当的声明.这意味着在一个方法的内部,我们不能改变自变量句柄指向的东西.如下所示: /** * Created b ...

  2. Java虚拟机详解04----GC算法和种类【重要】

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. Makefile简介

    1.源程序的编译在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明如何使用gcc编译器.假设我们有下面一个非常简单的源程序(hello.c):in ...

  4. 缓存需要注意的问题以及使用&period;net正则替换字符串的方法

    参考资料:http://www.infoq.com/cn/news/2015/09/cache-problems 正则替换字符串的简单方法: var regTableType = new Regex( ...

  5. 关于autofac的一些具体的用法

    简介:Autofac是一个.net下非常优秀,性能非常好的IOC容器(.net下效率最高的容器) 1.nuget 引用 2.创建两个类库项目,IService (用于编写接口),ServiceImpl ...

  6. nginx tomcat https

    .首先确保机器上安装了openssl和openssl-devel #yum install openssl #yum install openssl-devel . server { listen s ...

  7. 面向对象ZJ

    面向对象: 对象: 万事万物皆为对象. 特征, 动作或功能放在一起的就是一个对象 对象如何创建的. 在python中对象是通过类来创建的. 类是对对象的描述.统称.约束. class Car: def ...

  8. 外观模式face

    5.1 模式优点       外观模式的主要优点如下: (1) 它对客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易.通过引入外观模式,客户端代码将变得很简单,与之 ...

  9. 023 Hadoop的生态系统

    1.数据来源 RDBM:sqoop 日志文件:flume 2.zookeeper 多台机器保持同步数据. 3.hive sql语句的查询 HQL转换成mapreduce SQL On Hadoop 4 ...

  10. centos7安装kafka&lowbar;2&period;11-1&period;0&period;0 新手入门

    系统环境 1.操作系统:64位CentOS Linux release 7.2.1511 (Core) 2.jdk版本:1.8.0_121 3.zookeeper版本:zookeeper-3.4.9. ...