gitlab 下spring Cloud持续集成配置

前提

有gitlab 环境, 目标机器有java运行环境
复制代码

一、安装gitlab-runner

docker run -d --name gitlab-runner --restart always -v $PWD/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest
复制代码

二、添加执行器

docker exec -it gitlab-runner gitlab-ci-multi-runner register -n \
  --url http://192.168.1.4:8100/ \
  --registration-token -LC6aAyNAQ8MLk_9SYQS \
  --tag-list=cloudgateway \
  --description "spring Cloud gateway demo" \
  --docker-privileged=true \
  --docker-pull-policy="if-not-present" \
  --docker-image "docker:latest" \
  --docker-volumes /var/run/docker.sock:/var/run/docker.sock \
  --docker-volumes /root/m2:/root/.m2 \
  --executor docker 
复制代码

注意其中

registration-token

tag-list 默认执行器需要tag才运行,所以指定(settings/ci/cd对应的执行器可以看到默认是需要的)

三、.gitlab-ci.yml 配置

  • gitlab 所在执行器添加密钥

    docker exec –it gitlab-runner /bin/sh

    ssh-keygen -t rsa

    scp -P 68 ~/.ssh/id_rsa.pub root@192.168.1.4:/root/.ssh/authorized_keys (P端口指定要大写)

  • 配置gitlab ci环境变量

    此变量为执行器ssh的私钥 必须包含头尾的"--- "内容

  • .gitlab-ci.yml 内容

variables:
  PACKAGE_JAR: "springCloud2.x-gateway-0.0.1-SNAPSHOT"

stages:
  - build
  - run
  
build:
  image: maven:3-jdk-8
  stage: build
  tags:
    - cloudgateway
  script: "mvn package -B -Dmaven.test.skip=true"
  artifacts:
    paths:
      - target/*.jar

deploy_qa:
  image: maven:3-jdk-8			#此镜像包含ssh相应命令
  stage: run
  tags:			#对应的执行起默认需要个tag
    - cloudgateway
  before_script:  #全局的话每个步骤都会执行
    - eval $(ssh-agent -s)
    # 清除一些系统中复制出现的换行符\r,并重定向到/dev/null防止泄露
    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
    # 创建~/.ssh目录,并配置权限(非root运行的runner)
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - ssh-keyscan 192.168.1.4 >> ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
  script:
    - scp -o StrictHostKeyChecking=no -P 68 target/$PACKAGE_JAR.jar root@192.168.1.4:/home/work/
    - scp -o StrictHostKeyChecking=no -P 68 entry.sh root@192.168.1.4:/home/work/
    #-o StrictHostKeyChecking=no 禁止命令行询问密码 work 目录给与执行权限chmod 777 work/*
    - ssh -o StrictHostKeyChecking=no -p 68 root@192.168.1.4 "cd /home/work/ ; ./entry.sh"  
复制代码

转载于:https://juejin.im/post/5c98fc536fb9a070af219d26

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值