在服务器安装gitlab-runner
以下以ivy-chat为例部署gitlab—cicd

在virgo服务器进行gitlab-runner安装

1.下载执行文件

wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

2.添加执行执行权限

chmod +x /usr/local/bin/gitlab-runner
3.创建GitLab CI用户(看你程序使用什么用户启动就创建什么用户,runner会用此用户执行程序)

useradd chativymedia -d /var/gitlab-runner
4.运行服务

gitlab-runner install --user=chativymedia --working-directory=/var/gitlab-runner
gitlab-runner start
gitlab-runner注册
访问gitlab上面找到对应的项目http://192.168.20.10:81/java/ivy-chat-front/settings/ci_cd

Swttings--->CI /CD --->Runners

1.获取Gitlab注册令牌(在gitlab项目下)

gilab实现自带CICD_第1张图片

2.Linux注册(在virgo服务进行操作)

gitlab-runner register
输入你的gitlab URL

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.156.58.47/ #这是我的gitlab地址,这是映射后的地址
输入注册令牌token来注册runner

Please enter the gitlab-ci token for this runner:
7HQxuLrhyvbAb2L-SKWc
输入Runner说明

Please enter the gitlab-ci description for this runner
[hostame] ivy-chat
输入Runner的tags

Please enter the gitlab-ci tags for this runner (comma separated):
ivy-chat #根据自己的需求设定,可随意,这是在yml文件中指定runner用的
输入Runner的执行方式

Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell #如果是docker执行就输入docker,一般写shell
编写.gitlab-ci.yml集成
在ivy-chat项目下新建一个.gitlab-ci.yml文件

stages:

  • deploy
    #打包部署
    deploy:
    stage: deploy
    environment:
    name: ivy-chat
    url: http://chat.ivymedia.com
    only:
    • master #指定分支,只允许master
      tags:
    • ivy-chat
      script:
    • mvn clean package -Pprod
    • if [ ps -ef|grep ivy-chat|grep -v grep|wc -l -eq 0 ];then echo "服务已关闭";else kill -9 ps -ef|grep ivy-chat|grep -v grep|awk '{print $2}';fi #判断服务是否关闭,没有关闭则关闭
    • cp -f target/ivy-chat.jar /var/www/vhosts/chat.ivymedia.com #直接覆盖原jar包
    • nohup java -jar /var/www/vhosts/chat.ivymedia.com/ivy-chat.jar >>/var/www/vhosts/chat.ivymedia.com/logs/access_log 2>>err_log & #启动jar包
      ivy-chat-front的.gitlab-ci.yml文件如下

stages:

  • deploy
    #打包部署
    deploy:
    stage: deploy
    environment:
    name: ivy-chat-front
    url: http://chat.ivymedia.com
    only:
    • master
      tags:
    • ivy-chat-java
      script:
    • cp -rf ./* /var/www/vhosts/chat.ivymedia.com/httpdocs/
      项目触发runner,一直处于pending的话解决方法如下

在服务器上重启runner即可

systemctl restart gitlab-runner