Gitlab Runner 部署

简介: Gitlab Runner 部署

Gitlab Runner 部署

文章目录

1. 本地安装gitlab-runner

$ wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
$ curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
$ yum install gitlab-runner
$ systemctl status gitlab-runner
$ sudo chown -R gitlab-runner:gitlab-runner /var/run/docker.sock
$ sudo su - gitlab-runner

当然,我们可以安装官方的方法安装,从gitlab就可以找到简洁的安装方式:

1832b220aa754cd18c504acc7686a560.png

1832b220aa754cd18c504acc7686a560.png

2. 项目通过本地命令注册runner

1 输入如下命令

$ sudo gitlab-runner register

2 输入gitlab地址

地址可以从项目中获取到

这个页面会获取到地址和token,下面用到

3 输入token,就是截图里的token

4 输入对Runner的描述,这个在GitLab’s UI可以修改,比如my-runner

5 给Runner打个标签,这个在GitLab’s UI可以修改,比如java

6 是否Runner执行没有标签的构建任务,输入true

7 是否将Runner锁定到当前项目,这个在GitLab’s UI可以修改,输入true

8 输入Runner的执行者,这里我选择shell

这样我们就配置好了Runner

当我们有代码提交的时候,Runner就会执行.gitlab-ci.yml的构建任务

1832b220aa754cd18c504acc7686a560.png

3. docker安装gitlab-runner

docker run -d --name gitlab-runner --restart always --net=host \
     -v /srv/gitlab-runner/config:/etc/gitlab-runner \
     -v /var/run/docker.sock:/var/run/docker.sock \
     gitlab/gitlab-runner:latest

您可以使用配置容器来挂载您的自定义数据卷

docker volume create gitlab-runner-config
docker run -d --name gitlab-runner --restart always --net=host \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v gitlab-runner-config:/etc/gitlab-runner \
    gitlab/gitlab-runner:latest

4. 项目通过docker注册runner

$ docker run --rm --net=host -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:alpine-v14.4.2 register
Runtime platform                                    arch=amd64 os=linux pid=7 revision=50fc80a6 version=14.4.2
Running in system-mode.                            
Enter the GitLab instance URL (for example, https://gitlab.com/):
http://192.168.211.70:8081
Enter the registration token:
6D5mo8iWCLBaVdqcaqjN
Enter a description for the runner:
[329b671ffa00]: gitlab-example
Enter tags for the runner (comma-separated):
Registering runner... succeeded                     runner=6D5mo8iW
Enter an executor: ssh, virtualbox, docker+machine, shell, docker-ssh+machine, kubernetes, custom, docker, docker-ssh, parallels:
docker
Enter the default Docker image (for example, ruby:2.6):
ubuntu:20.04
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 

我们选择的执行器是docker,那么关于这个项目,编写.gitlab-ci.yml就要一定docker执行的规则去执行。

注册配置内容我可以在这里看到。并根据需求做一些小的变动。

$ docker exec -ti gitlab-runner bash
$ cat /etc/gitlab-runner/config.toml 
concurrent = 1
check_interval = 0
[session_server]
  session_timeout = 1800
[[runners]]
[[runners]]
  name = "demo"
  url = "http://gitlab.example.com:8081/"
  token = "PF41kT9ZV_1DoT6VzcCu"    #这里的token,并不是registration token的token。
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    extra_hosts = ["gitlab.example.com:192.168.211.70"]
    tls_verify = false
    image = "ubuntu:20.04"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
    dns = ["8.8.8.8", "1.1.1.1"]

执行器选择是多种样的,我们当然也可以多个选择。通过多次注册的方式。

我尝试再次注册一次。

docker run  --net=host --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:alpine-v14.4.2 register
Runtime platform                                    arch=amd64 os=linux pid=11 revision=50fc80a6 version=14.4.2
Running in system-mode.                            
Enter the GitLab instance URL (for example, https://gitlab.com/):
http://gitlab.example.com:8081
Enter the registration token:
6D5mo8iWCLBaVdqcaqjN
Enter a description for the runner:
[yourdomain.com]: gitlab-demo
Enter tags for the runner (comma-separated):
gitlab-demo-shell
Registering runner... succeeded                     runner=6D5mo8iW
Enter an executor: docker, docker-ssh, shell, docker+machine, custom, parallels, ssh, virtualbox, docker-ssh+machine, kubernetes:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 

这次的执行器是shell。

1832b220aa754cd18c504acc7686a560.png

登陆gitlab查看runner的列表,多出一个runner

1832b220aa754cd18c504acc7686a560.png

查看runner配置

$ docker exec -ti gitlab-runner bash
$ cat /etc/gitlab-runner/config.toml 
concurrent = 1
check_interval = 0
[session_server]
  session_timeout = 1800
[[runners]]
  name = ""
  url = ""
  token = ""
  executor = ""
[[runners]]
  name = "demo"
  url = "http://gitlab.example.com:8081/"
  token = "PF41kT9ZV_1DoT6VzcCu"
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = false
    image = "ubuntu:20.04"
    dns = ["8.8.8.8", "1.1.1.1"]
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    extra_hosts = ["gitlab.example.com:192.168.211.70"]
    shm_size = 0
[[runners]]
  name = "gitlab-demo"
  url = "http://gitlab.example.com:8081"
  token = "TX1s_ZQ1RnNj5xaVW-y9"
  executor = "shell"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]

关于一个项目我们通过多次注册编排,选择不同执行器编排.gitlab-ci.yml,比如,你可能需要这个应用暂时本地运行,后来docker运行,再后来kubernets运行等等。

5. 注意

不同的项目向runner注册的token是不一样的。

1832b220aa754cd18c504acc7686a560.png

1832b220aa754cd18c504acc7686a560.png

相关文章
|
4月前
|
Ubuntu 安全 数据安全/隐私保护
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
367 12
|
9月前
|
缓存 Kubernetes Docker
GitLab Runner 全面解析:Kubernetes 环境下的应用
GitLab Runner 是 GitLab CI/CD 的核心组件,负责执行由 `.gitlab-ci.yml` 定义的任务。它支持多种执行方式(如 Shell、Docker、Kubernetes),可在不同环境中运行作业。本文详细介绍了 GitLab Runner 的基本概念、功能特点及使用方法,重点探讨了流水线缓存(以 Python 项目为例)和构建镜像的应用,特别是在 Kubernetes 环境中的配置与优化。通过合理配置缓存和镜像构建,能够显著提升 CI/CD 流水线的效率和可靠性,助力开发团队实现持续集成与交付的目标。
|
12月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
8月前
|
Kubernetes 持续交付 数据库
阿里云ACK+GitLab企业级部署实战教程
GitLab 是一个功能强大的基于 Web 的 DevOps 生命周期平台,整合了源代码管理、持续集成/持续部署(CI/CD)、项目管理等多种工具。其一体化设计使得开发团队能够在同一平台上进行代码协作、自动化构建与部署及全面的项目监控,极大提升了开发效率和项目透明度。 GitLab 的优势在于其作为一体化平台减少了工具切换,高度可定制以满足不同项目需求,并拥有活跃的开源社区和企业级功能,如高级权限管理和专业的技术支持。借助这些优势,GitLab 成为许多开发团队首选的 DevOps 工具,实现从代码编写到生产部署的全流程自动化和优化。
|
JavaScript Java 应用服务中间件
用白薅来的gitlab自带的gitlab-runner部署一个vue项目
用白薅来的gitlab自带的gitlab-runner部署一个vue项目
336 2
|
12月前
|
运维 Linux 开发工具
第22篇 如何部署gitLab进行开发版本控制
第22篇 如何部署gitLab进行开发版本控制
|
Shell Docker 容器
5-17|gitlab的runner什么意思
5-17|gitlab的runner什么意思
|
jenkins 持续交付 数据安全/隐私保护
GitLab——如何快速部署GitLab仓库
GitLab——如何快速部署GitLab仓库
102 0
|
缓存 Kubernetes Shell
CI/CD:安装配置Gitlab Runner
CI/CD:安装配置Gitlab Runner
1093 0