DevOps 之注册 Gitlab Runner
关于 Runner⌗
Gitlab Runner 是 Gitlab 官方基于 Golang 开发的一款开源的 CI/CD 的部署工具,支持 Linux、macOS、Windows。有了它能让我们的开发流程变得更加顺畅、可控。
在 CentOS 上安装⌗
# 添加官方仓库
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
# 安装
sudo yum install gitlab-runner
注册 Runner⌗
sudo gitlab-runner register
Runtime platform arch=amd64 os=linux pid=1947 revision=5a147c92 version=11.11.1
Running in system-mode.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
https://gitlab.example.com/ # 这里替换成你的 Gitlab 服务器地址(在仓库的设置,或管理员后台中查看)
Please enter the gitlab-ci token for this runner:
UYXe4zr928H51rUSze4t # 这里替换成你的 Gitlab 服务器生成的 Token(在仓库的设置,或管理员后台中查看)
Please enter the gitlab-ci description for this runner:
[server]: Special server # Runner 的描述信息
Please enter the gitlab-ci tags for this runner (comma separated):
develop,preview # Runner 的标签,可以在 .gitlab-ci.yml 的配置中根据 tag 选择要在哪台 Runner 上执行 Pipelines
Registering runner... succeeded runner=UYXe7zr9
Please enter the executor: docker, ssh, virtualbox, docker+machine, kubernetes, docker-windows, docker-ssh, parallels, shell, docker-ssh+machine:
shell # 选择执行的方式
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
关于执行方式⌗
Shell⌗
这种方式将会在安装 Gitlab Runner 的服务器上以 Shell 的方式执行 .gitlab-ci.yml 中配置的 script。如果你只是想用 Gitlab Runner 来自动拉取最新代码的话,可以采用这种方式。
stages:
- deploy
deploy:
stage: deploy
script:
- 要执行的命令
tags:
- production
gitlab-runner install --working-directory /var/local --user root
上面安装服务的时候我手动指定了工作目录,这样他会创建 <working-directory>/builds/<short-token>/<concurrent-id>/<namespace>/<project-name>
目录结构,这样每次开发者 PUSH 代码到 master 分支时,Runner 将会拉取最新代码到该目录。剩下要做的就是配置 Nginx 的站点根目录到该文件夹。
I hope this is helpful, Happy hacking…