gitlab runner安装


一、安装

Debian/Ubuntu 用户
1.首先信任 GitLab 的 GPG 公钥:

curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
2.修改清华源:

vim /etc/apt/sources.list.d/gitlab-runner.list
deb http://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/debian buster main
3.安装 gitlab-runner:

sudo apt-get update
sudo apt-get install gitlab-runner
CentOS/RHEL
新建 /etc/yum.repos.d/gitlab-runner.repo,内容为

[gitlab-runner]
name=gitlab-runner
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el$releasever/
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
再执行

sudo yum makecache
sudo yum install gitlab-runner
4.启动
gitlab-runner start

5.注册runner
gitlab-runner register

运行:
gitlab-runner run

6.docker其他操作 (貌似可以忽略!)
sudo groupadd docker     #添加docker用户组
sudo gpasswd -a gitlab-runner docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组
su gitlab-runner #切换到runner用户组
docker ps    #测试docker命令是否可以使用sudo正常使用

7.docker gitlab部署安装
docker pull beginor/gitlab-ce:11.3.0-ce.0
docker run --detach --publish 8443:443 --publish 8880:80 --publish 8822:22 --name my-gitlab --restart unless-stopped --volume /Users/ys/svn_git/05Docker_workspace/gitlab/etc:/etc/gitlab --volume /Users/ys/svn_git/05Docker_workspace/gitlab/log:/var/log/gitlab --volume /Users/ys/svn_git/05Docker_workspace/gitlab/data:/var/opt/gitlab --privileged=true -d beginor/gitlab-ce:11.3.0-ce.0

8.测试
提交代码,测试,是否触发CI

二、gitlab-ci.yml参考

#20210811
stages:
  - build
  - deploy
  
variables:
  siteLocation: "/home"
  siteName: "weitest"
  sshuser: "root"
  sship: "xx"
  sshpasswd: "xx"
  ports: "8870,8871,8872"
  projectpath: "/root/dockerfile/"
  dockercomposepath: "/root/dockerfile/docker-compose.yml"
  autopushpath: "/root/dockerfile/autopush.sh"
 
before_script:
  - echo "Before run..."
# 清理项目目录
  - if [ -d "${siteLocation}/${siteName}" ]; then
  - rm -rf ${siteLocation}/${siteName}
  - fi
  - mkdir -p ${siteLocation}/${siteName}
 
build_job:
  stage: build
  script:
  - echo "build run..."
  - pwd
  - ls -l
  - ifconfig
  - cat /root/.ssh/id_rsa.pub
# 打包程序,上传到测试docker服务器
  - tar -czvf ${siteLocation}/${siteName}/gitlabwebapps.tar.gz .
#  - scp -r ${siteLocation}/${siteName}/gitlabwebapps.tar.gz ${sshuser}@${sship}:${projectpath}
  - sshpass -p ${sshpasswd} scp -r ${siteLocation}/${siteName}/gitlabwebapps.tar.gz ${sshuser}@${sship}:${projectpath}
  only:
  - master
  tags:
  - abc
  
deploy_job:
  stage: deploy
  script:
  - echo "deploy run..."
  - pwd
  - ls -l
  - ifconfig
# 构建docker容器
#  - ssh -Tq ${sshuser}@${sship} "docker-compose -f ${dockercomposepath} up -d --build --force-recreate --remove-orphans"
  - sshpass -p ${sshpasswd} ssh -Tq ${sshuser}@${sship} "docker-compose -f ${dockercomposepath} up -d --build --force-recreate --remove-orphans"
# 上传images镜像
#  - ssh -Tq ${sshuser}@${sship} "/bin/bash ${autopushpath}"
  - sshpass -p ${sshpasswd} ssh -Tq ${sshuser}@${sship} "/bin/bash ${autopushpath}"
  only:
  - master
  tags:
  - abc

三、初始化

1. Reset CI/CD variables
sudo gitlab-rails dbconsole

SELECT * FROM public."ci_group_variables";
SELECT * FROM public."ci_variables";

DELETE FROM ci_group_variables;
DELETE FROM ci_variables;

2.Reset runner registration tokens
sudo gitlab-rails dbconsole

-- Clear project tokens
UPDATE projects SET runners_token = null, runners_token_encrypted = null;
-- Clear group tokens
UPDATE namespaces SET runners_token = null, runners_token_encrypted = null;
-- Clear instance tokens
UPDATE application_settings SET runners_registration_token_encrypted = null;
UPDATE application_settings SET encrypted_ci_jwt_signing_key = null;
-- Clear runner tokens
UPDATE ci_runners SET token = null, token_encrypted = null;

3.Reset pending pipeline jobs
sudo gitlab-rails dbconsole

-- Clear build tokens
UPDATE ci_builds SET token = null, token_encrypted = null;