GitlabCI学习笔记之一:安装Gitlab和GitLabRunner

发布时间 2023-05-22 23:14:17作者: 百衲本

1.安装GitLab

# 下载地址https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm
rpm -ivh gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm
vim /etc/gitlab/gitlab.rb  
external_url 'http://192.168.1.134'  #服务主机地址或者域名

gitlab-ctl reconfigure
其他常用命令:
gitlab-ctl start
gitlab-ctl stop
gitlab-ctl restart

2.安装GitLabRunner

1.rpm包安装
wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el7/gitlab-runner-12.9.0-1.x86_64.rpm
yum install git -y
rpm -ivh gitlab-runner-12.9.0-1.x86_64.rpm 
systemctl start gitlab-runner
systemctl status gitlab-runner

2.docker安装
docker run --rm -t -id -v /data/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:v12.9.0 

3.注册runner

3.1GitLab Runner类型与状态

类型

shared共享类型,运行整个平台项目的作业(gitlab)
group 项目组类型,运行特定group下的所有项目的作业(group)
specific项目类型,运行指定的项目作业( project)

状态

locked:锁定状态,无法运行项目作业(默认状态)
paused:暂停状态,暂时不会接受新的作业

3.2 注册步骤

获取runner token(每种类型获取方式不同) -->注册 

3.3获取token

以shared共享类型为例,查看token相关信息

命令行执行注册操作

刷新gitlab页面(注意状态为锁定)

共享型runner默认不支持tag不匹配的任务,如果要支持需要配置,如下

也可以通非交互式完成,以docker运行为例(以下参数命令行同样适用)

docker run -itd --rm -v /data/gitlab-runner/config:/etc/gitlab-runner  gitlab/gitlab-runner:v12.9.0 register \
  --non-interactive \    #非交互式
  --executor "shell" \   #执行器类型
  --url "http://192.168.1.134/" \  #gitlab地址
  --registration-token "maZ23yLmAhjpRhTw5WE3" \  #token
  --description "devops-runner" \    #描述
  --tag-list "build,deploy" \  #匹配的tag
  --run-untagged="true" \    #运行没有标签的任务
  --locked="false" \         #创建后状态为不锁定
  --access-level="not_protected"  

4.GitLabRunner常用命令

1.启动命令
gitlab-runner --debug <command>   #调试模式排查错误特别有用。
gitlab-runner <command> --help    #获取帮助信息
gitlab-runner run       #普通用户模式  配置文件位置 ~/.gitlab-runner/config.toml
sudo gitlab-runner run  # 超级用户模式  配置文件位置/etc/gitlab-runner/config.toml

2.注册命令
gitlab-runner register  #默认交互模式下使用,非交互模式添加 --non-interactive
gitlab-runner list      #此命令列出了保存在配置文件中的所有运行程序
gitlab-runner verify    #此命令检查注册的runner是否可以连接,但不验证GitLab服务是否正在使用runner。 --delete 删除
gitlab-runner unregister   #该命令使用GitLab取消已注册的runner。

#使用令牌注销
gitlab-runner unregister --url http://gitlab.example.com/ --token t0k3n

#使用名称注销(同名删除第一个)
gitlab-runner unregister --name test-runner

#注销所有
gitlab-runner unregister --all-runners


3.服务管理
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
# --user指定将用于执行构建的用户
#`--working-directory  指定将使用**Shell** executor 运行构建时所有数据将存储在其中的根目录

gitlab-runner uninstall #该命令停止运行并从服务中卸载GitLab Runner。
gitlab-runner start     #该命令启动GitLab Runner服务。
gitlab-runner stop      #该命令停止GitLab Runner服务。
gitlab-runner restart   #该命令将停止,然后启动GitLab Runner服务。
gitlab-runner status #此命令显示GitLab Runner服务的状态。当服务正在运行时,退出代码为零;而当服务未运行时,退出代码为非零。