gitlab-ci:自动化部署

由于代码修改频繁,每次修改后都需要手动部署,为了节省部署时间,特此研究一下git的ci部署。完成后的效果,每次git commit后,代码都会通过git popline自动部署

一.对gitlab-ci的一些简单介绍

1.gitlab-ci为什么能运行。每当你push/merge一次,gitlab-ci都会检查项目下有没有.gitlab-ci.yml文件,如果有,它会执行你在里面编写的脚本,类似于你在服务器中一行行运行命令,从下载,编译,到部署运行

2.通过在项目根目录下配置.gitlab-ci.yml文件,可以控制ci流程的不同阶段,例如install/检查/编译/部署服务器

3.但是执行ci得需要一个环境,gitlab-ci提供了指定ci运行平台的机制,它提供了一个叫gitlab-runner的软件,只要在对应的平台(机器或docker)上下载并运行这个命令行软件,并输入从gitlab交互界面获取的token,就可以把当前机器和对应的gitlab-ci流程绑定。

4.gitlab-ci的所有流程都是可视化的,每个流程节点的状态可以在gitlab的交互界面上看到,包括执行成功或失败。因为它的执行看上去就和多节管道一样,所以我们通常用“pipelines”来称呼它

5.pipeline不仅能被动触发,也是可以手动触发的。
在这里插入图片描述

二.进行部署

1.在项目根目录新建.gitlab-ci.yml,并复制如下内容

before_script: # 先进行登录
  - /usr/bin/docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY

build-master: # 编译主分支
  stage: build
  tags:
    - docker-qb
  script:
    - /usr/bin/docker build -t "$CI_REGISTRY/$CI_REGISTRY_IMAGE:1.0.0" .
    - /usr/bin/docker push "$CI_REGISTRY/$CI_REGISTRY_IMAGE:1.0.0"
  only:
    - master

build:  #拉取代码并进行编译
  stage: build
  tags:
    - docker-qb
  script:
    - /usr/bin/docker build --pull -t "$CI_REGISTRY/$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" .
    - /usr/bin/docker push "$CI_REGISTRY/$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG"
  except:
    - master
    
deployK8s:  #对远程k8s进行操作
  stage: deploy
  tags:
    - docker-qb
  script:
    - 'curl -X PUT -H "Content-Type: application/yaml" -H "Cookie: KuboardUsername=yanfa; KuboardAccessKey=$KUBOARD_AK" -d "{\"kind\":\"deployments\",\"namespace\":\"testdata\",\"name\":\"questionbank\"}" "http://kuboard-dev.kube.com/kuboard-api/cluster/dev/kind/CICDApi/yanfa/resource/restartWorkload"'

2.在git中设置对应的变量值,与第一步中script中的值相对应
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值