答案就是 GitLab Runner 了! 想问为什么不是 GitLab CI 来运行那些构建任务? GitLab CI 最大的作用是管理各个项目的构建状态,因此,运行构建任务这种浪费资源的事情就交给 GitLab Runner 来做拉! 因为 GitLab Runner 可以安装到不同的机器上,所以在构建任务运行期间并不会影响到 GitLab 的性能 安装 在目标主机上安装 GitLab Runner,这里的目标主机指你要部署的服务器 | sudo bash sudo apt-get update sudo apt-get install gitlab-ci-multi-runner 注册 Runner 安装好 GitLab Runner 之后,我们只要启动 Runner 然后和 GitLab CI 绑定: [root@iZbp1fmnx8oyubksjdk7leZ gitbook]# gitlab-ci-multi-runner register
修改镜像拉取策略 修改配置文件:/etc/gitlab-runner/config.toml 在对应 runner 节点下添加 pull_policy = "if-not-present" 就可以了 [ [runners]] name = "Android Build Runner" url = "https://git.xyser.com/" token = "3dc54666cacafd
环境 操作系统: Linux Centos7 gitlab-runner版本: 9.5.1 gitlab版本: 10.4.1 2. 安装 2.1 添加yum源 curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/ script.rpm.sh | sudo bash 2.2 安装gitlab-runner yum install gitlab-ci-multi-runner 2.3 向GitLab-CI注册runner gitlab-ci-multi-runner register 注册中需要 gitlab的URL 以及 token,在gitlab UI界面就能找到,进入项目,依次点击就能找到。 参考 GitLab Runner的安装与使用 持续集成之.gitlab-ci.yml篇
向GitLab-CI注册一个Runner需要两样东西:GitLab-CI的url和注册token。 docker.io/gitlab/gitlab-runner 创建配置文件目录 # mkdir /data/gitlab/order/config 启动一个runner容器 # docker run - /gitlab/order/config:/etc/gitlab-runner gitlab/gitlab-runner:latest 查看docker进程 # docker ps ? # docker exec -it gitlab-runner-monitor gitlab-runner register Running in system-mode. (公司内部网络) 注册runner # docker exec -it gitlab-runner-monitor gitlab-runner register 注意,tags为dev Running
https://docs.gitlab.com/runner/#runner-execution-flow SVG 文件
All shell builds will be then executed as either the gitlab-runner or gitlab_ci_multi_runner user. In that case you need to add the gitlab-runner user to the respective group: usermod -aG docker gitlab-runner usermod -aG vboxusers gitlab-runner Selecting your shell GitLab Runner supports certain shells. GitLab 13.0 and earlier On UNIX systems gitlab-runner sends a SIGKILL to the process to terminate it GitLab 13.1 and later On UNIX system gitlab-runner sends SIGTERM to the process and its child processes
系统是Ubuntu or Alpine Linux 乌班图或者Alpine Linux系统 使用本地卷安装GitLab Runner docker run -d --name gitlab-runner --restart always \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock :/var/run/docker.sock \ gitlab/gitlab-runner:latest 使用Docker 卷安装GitLab Runner docker volume create :/var/run/docker.sock \ -v gitlab-runner-config:/etc/gitlab-runner \ gitlab/gitlab-runner:latest :Z \ gitlab/gitlab-runner:latest 相关链接 Run GitLab Runner in a container
源码编译 GitLab Runner 从源码安装 GitLab 你或许听说过,但是从源码安装 GitLab Runner ,或许这将是你听到的第一篇相关博客。 /gitlab-org/gitlab-runner/common.NAME=gitlab-runner -X gitlab.com/gitlab-org/gitlab-runner/common.VERSION /gitlab-runner/common.NAME=gitlab-runner -X gitlab.com/gitlab-org/gitlab-runner/common.VERSION=12.2.0 dockerfiles/build/binaries/gitlab-runner-helper.arm gitlab.com/gitlab-org/gitlab-runner/apps/gitlab-runner-helperNumber /gitlab-org/gitlab-runner/common.NAME=gitlab-runner -X gitlab.com/gitlab-org/gitlab-runner/common.VERSION
Nanoserver support Introduced in GitLab Runner 13.6. Available since GitLab Runner 12.9. Network per-build Introduced in GitLab Runner 12.9. See an issue: https://gitlab.com/gitlab-org/gitlab-runner/-/issues/1520. This was changed in GitLab Runner v1.8.
此时软链接 b 已存在,我的预期是执行失败,或者覆盖软链接 b,但实际上在 a 下创建了一个软链接 a,这是第一个问题
gitlab runner 与 Jenkins 的使用 部署runner sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3 .amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 sudo chmod +x /usr/local/bin/gitlab-runner sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner sudo gitlab-runner start 参考链接 使用 runner 注册 在项目中注册 在群组中注册 shell 类型生成证书 variables 是环境变量参数 tags 是指定runner script 是执行的脚本 only 是执行的条件
GitLab注册Runner sudo gitlab-runner register \ --non-interactive \ --url "https://gitlab.com/" \ true" \ --locked="false" \ --access-level="not_protected" 对于使用本地卷安装 docker run --rm -it -v /srv/gitlab-runner /config:/etc/gitlab-runner gitlab/gitlab-runner register 使用Docker 卷安装 docker run --rm -it -v gitlab-runner-config :/etc/gitlab-runner gitlab/gitlab-runner:latest register 执行后会询问,输入一下变量 输入 gitlab的地址 输入gilab-ci的token Runner的executor 要写 docker 如果你选择了docker 作为执行工具,你会被要求填写一个默认镜像 没有在.gitlab-ci.yml中定义的 除了gitlab地址和token
基础架构之Gitlab Runner也是常用的基础设施,我们接着GitLab操作,具体使用GitlabRunner,如果不熟悉可以见官方详细介绍 https://docs.gitlab.com/runner (一) 环境要求 Centos 7.5.1804 Docker 18.06.1-ce gitlab/gitlab-ce gitlab/gitlab-runner (二) 安装设置 GitLab设置 a) 执行器安装 sudo docker run -d --name gitlab-runner-docker --restart always -v /srv/gitlab-runner-docker /lib/x86_64-linux-gnu/libltdl.so.7 -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner 注册 运行如下命令,注册执行器 sudo docker exec -it gitlab-runner-docker gitlab-runner register -n --url http://
这一篇,我们实践一下,如何通过Gitlab-runner进行持续集成 使用gitlab-runner进行持续集成与部署的关键在于 .gitlab-ci.yml文件的使用,该文件类似于Jenkins中的 Jenkinsfile,按顺序的执行我们预定义的每一个步骤(stage),然后通过对应的stage执行相关的shell或者其他指令,动手实践一下 首先创建一个git仓库,在仓库中添加一个 .gitlab-ci.yml 注意,上面的关键在于tags,如果没有指定tags的话,这里就会在出现被卡主stuck的错误,这是因为匹配不到合适的gitlab-runner,正如上图,我们使用的是default这个Tag,所以在.gitlab-ci.yml 文件的stage中一定要指明,出现的错误如下图: 这里还要注意一点,我们需要编辑一下gitlab-runner,把创建的git仓库加入到gitlab-runner中 此时我们在左侧的CI/CD下面的
背景 Gitlab-Runner是一款用于执行软件集成脚本的工具,它配合Gitlab-CI使用,是Gitlab代码管理工具的一部分。 Gitlab-Runner通常单独安装或以Docker容器的形式部署,而Gitlab-CI和Gitlab集成在一起用于调用Gitlab-Runner。 /config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:latest 使用 Gitlab-Runner配合Gitlab, Gitlab-CI使用 注册Gitlab-Runner到工程 docker exec -it gitlab-runner gitlab-ci-multi-runner /gitlab-runner.exe register 安装service并运行: gitlab-runner install gitlab-runner start
GitLab Runner 是一个用于运行 CI/CD 作业的轻量级容器化工具。我们将使用 Docker 容器来运行 GitLab 和 GitLab Runner。 注册 GitLab Runner接下来,我们需要注册 GitLab Runner。我们可以使用 Docker 容器来运行 GitLab Runner。 容器来运行 GitLab Runner:bashCopy codedocker run -d --name gitlab-runner --restart always \ -v /srv/gitlab-runner \ gitlab/gitlab-runner:latest在这个命令中,我们使用 gitlab/gitlab-runner 镜像来创建 GitLab Runner 容器。 - gitlab-runner runner2: image: gitlab/gitlab-runner:latest restart: always volumes: -
docker-compose.yaml version: "3.9" services: gitrunner: image: 'gitlab/gitlab-runner' container_name : "gitlab-runner" restart: always volumes: - '. up -d 注册runner Gitlab Runner 有 3 种级别 全局共享 因为 executor 使用的是容器,不是 shell,所以非特殊要求,使用这个就行。 job 也是并行处理 获取 Gitlab CI Register Token 访问Gitlab全局 Runner 配置地址:https://xxx.com/admin/runners 注册 docker exec -it gitlab-runner gitlab-runner register --non-interactive --executor "docker" --docker-image alpine
原因: 注册gitlab runner 的时候,有一步提示: Can run untagged jobs: [false/true] 默认值为false。 这句话的意思是:是否在没有标记tag的job上运行,如果选择默认值false,那没有标记tag的代码提交是不会触发gitlab runner的,如果做测试,最好填true。 2. 如何提升权限 gitlab runner默认运行时user mode,想提升权限,只需要运行gitlab runner 的时候使用sudo即可。 sudo gitlab-ci-multi-runner run 这样,持续集成调用命令的时候,就可以执行super-user权限了。 via: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/commands/README.md
真没想到有一天, 我居然会创建 gitlab shell runner 。 shell runner 的环境真的太难管理了 创建 gitlab shell runner 实话实说, gitlab 现在的用户体验太好了。 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash # Install and run as service # /mnt/ sudo mkdir -p /mnt/disk/gitlab-runner sudo gitlab-runner install --user=root --working-directory=/mnt /disk/gitlab-runner ## 先不启动, 配置 # sudo gitlab-runner start install 之后, 以后可以在 /etc/systemd/system/gitlab-runner.service
下载runner,根据自己对应服务器的型号自行选择下载: # Linux x86-64 sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3 下载完之后,需要给gitlab-runner执行权限, sudo chmod +x /usr/local/bin/gitlab-runner 之后创建一个gitlab-runner用户,之后使用CI/CD sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash 创建好了用户之后,接下来安装gitlab-runner sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner ? 安装好以后,如上图所示 安装成功以后,启动gitlab-runner sudo gitlab-runner start 如何注册使用gitlab-runner: 首先找到自己的gitlab项目下设置,CI