修改gitlab.yml
1.创建一个GitLab CI用户:
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
切换到gitlab-runner用户下生成sshkey,并把gitlab-runner的sshKey添加到gitlab上
不然会出现权限问题
su gitlab-runner
cd ~/.ssh或cd .ssh
ls -al ~/.ssh
ssh-keygen -t rsa -C "[email protected]"
把id_rsa.pub里的内容复制 放入gitlab的ssh key里面
一.gitlab创建项目
二.创建 .gitlab-ci.yml文件
可以在gitlab直接在根目录创建.gitlab-ci.yml
也可以在本地克隆项目 然后在项目根目录创建名为 .gitlab-ci.yml文件 推送到远程仓库
文件内容根据需要编写 示范如下:
stages:
- deploy
xjd_publish_test:
stage: deploy
tags:
- xianjindai_admin_test
only:
- develop
script:
- whoami
- /web***ice/deploy/xi***dai/admin_deploy.sh
xjd_publish_product:
stage: deploy
tags:
- xia***dai_adm***product
only:
- master
script:
- whoami
- bash /web***vice/d***loy/xia***indai/admin_deploy.sh
写一个简单shell脚本
DEPLOY_PATH=项目根目录路径
GIT_URL=git克隆地址
NOW_BRANCH=要拉取的分支名
cd $DEPLOY_PATH
if [ -d "$DEPLOY_PATH/.git" ];then
echo --- Clean Workspace ---
git clean -f
git reset --hard
git remote update origin -p
git checkout $NOW_BRANCH
echo --- 拉取 $NOW_BRANCH 分支 ---
git pull origin $NOW_BRANCH
echo --- OK ---
else
git init
git remote add origin $GIT_URL
git pull origin $NOW_BRANCH
git remote update origin -p
git checkout $NOW_BRANCH
echo --- OK ---
fi
三、在服务器上注册 runner
安装 Gitlab Runner
1.添加repository
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
2.安装包
sudo yum -y install gitlab-runner
安装失败就用下面这个
yum install gitlab-ci-multi-runner
注册runner:
用其中一个就行
gitlab-runner register
gitlab-ci-multi-runner register
在 Gitlab 项目中打开 Settings > Runners,找到URL和token。
#引导会让你输入gitlab的url,输入自己的url,例如http://gitlab.example.com/
#引导会让你输入token,去相应的项目下找到token,例如ase12c235qazd32
#引导会让你输入tag,一个项目可能有多个runner,是根据tag来区别runner的,输入若干个就好了,比如web,hook,deploy
注意:tags要和.gitlab-ci.yml中的tags保持一致
#引导会让你输入executor,这个是要用什么方式来执行脚本,图方便输入shell就好了
我用的是shell
注册成功后
注册服务 gitlab-runner install
sudo gitlab-ci-multi-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-ci-multi-runner start
.开放执行权限给gitlab runner用户
chown -hR gitlab-runner:gitlab-runner 项目路径
要重启runner 下面是命令
sudo gitlab-ci-multi-runner restart(后台服务启动)
gitlab-runner run 前台手动启动
gitlab-runner start/stop/restart
四、回到gitlab 可以看到注册的runner已经有了
点击上图编辑进去给runner配置项目
然后再下图就可以看到项目已经和runner关联上了
常见错误:
测试一下
本地提交代码到远程仓库然后再ci/cd里面查看详情
下面这个错误的原因是gitlab内部设置的端口没有添加到安全组
1.如果在提交代码的时候出现如下错误:
切换至 .git所在目录 运行命令 git remote add origin +仓库地址
git remote add origin git@11***.207:php/xjd.git
2.如果如下图错误:
如果没有别的错误 检查一下 是不是脚本文件写的错误 执行的当前文件夹下没有.git 文件夹
3.如果一直在堵塞中 pending
如果一直处于 pending中 如下图:
1.检查一下 gitlab-runner服务有没有重启
2.gitlab-runner list 查看当前运行的runner和你项目中配置的是否一致
3.查看配置文件有没有多余重复 吧以前的删除掉,注意 要删除gitlab上和服务器上的都删除掉
4.
如果是在ci-jobs中一直报权限问题 如下:
排查事项:
1.有没有gitlab发布用户,如果有,要把这个用户添加到gitlab项目中
2.项目目录下的.git文件的归属权限有没有转交给 gitlab-runner
因为拉取代码是gitlab-runner这个服务器用户操作的 所以要有这个权限
如果是下面这种错误切换至.git所在目录 git fetch一下
如果你提交的代码没有进入到CI里面
请检查是否提交到受保护的分支如测试分支 正式分支
或者.gitlab-ci.yml 文件名等等是否正确