IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 基于GitLab的CI&CD -> 正文阅读

[开发工具]基于GitLab的CI&CD

前言

??gitlab, 我相信大家一定不会陌生,它自带的ci/cd在持续集成,持续交付方面也有一定的能力。有些介绍 比如:gitlab和gitlab-runnber 部署过程咱们就不多说,相信很多文章都介绍的很清楚。

GitLab-Runner

1-1

  • Runner是一个执行任务的进程
  • Runner可以放在不同的用户、服务器,甚至本地机器上

GitLab-Runner 注册

2-2

??在安装gitlab-runner的机器上命令注册runner

gitlab-runner register
  1. 输入gitlab的服务URL,这个使用的是https://xxx.com/
  2. 输入gitlab-ci的Toekn 如图:2-2
  3. 关于集成服务中对于这个runner的描述
  4. 给这个gitlab-runner输入一个标记,这个tag非常重要,在后续的使用过程中需要使用这个tag来指定gitlab-runner
  5. 是否运行在没有tag的build上面。在配置gitlab-ci的时候,会有很多job,每个job可以通过tags属性来选择runner。这里为true表示如果job没有配置tags,也执行
  6. 是否锁定runner到当前项目
  7. 选择执行器,gitlab-runner实现了很多执行器,可用在不同场景中运行构建,我选择Shell模式

编写gitlab-ci.yml文件

配置简单说明:

关键字必要描述
scriptCI/CD 过程需要执行的shell脚本
stage一个job流程,默认test
variables定义变量,GitLab上可配置
only指定当前job适用的git refs(分支、Tag)列表
except与only相反
tags通过标签管理或匹配runner
allow_failure指定当前job是否容错,正常job失败会跳过后续job流程
before_script在当前job执行前执行的shell脚本
after_script在当前job执行后执行的shell脚本
dependencies指定依赖的job列表,默认顺序执行
when依赖的上一个job执行什么状态后执行当前job: on_success on_failure always manual 默认on_success

前端 CICD

??下面涉及到相关服务IP或者涉密内容 用XXX ,这里简单说明一下,单纯的分了三个场景 正式环境 预发布 测试环境 。 这里就不举例子 vue项目打包成镜像了 k8s 部署vue项目 以前里面有重复的内容

  1. 在操作之前先登录docker
  2. 不同分支打不同的前端包,制作镜像 上传镜像
  3. 配置SSH免密登录,触发部署脚本
  4. 结束后,把之前打包的docker镜像清除,避免无限扩张
variables:
  IMAGE_VERSION: v1.0.1
  IMAGE_VERSION_TEST: v1.0.0
  IMAGE_ADDRESS: xxx/k8s/web-sxzz

stages:
  - build
  - staging
  - development

before_script:
  - docker login -u xxx -p xxx xxx

after_script:
  - docker rmi --force `docker images | grep web-sxzz | awk '{print $3}'`

build:
  stage: build
  tags:
    - web-sxzz
  only:
    - master
  cache:
    paths:
      - node_modules/
  script:
    - npm set registry https://registry.npm.taobao.org
    - npm install --progress=false
    - npm run build:prod
    - docker build -t "$IMAGE_ADDRESS:$IMAGE_VERSION.prod" .
    - docker push "$IMAGE_ADDRESS:$IMAGE_VERSION.prod"

staging:
  stage: staging
  tags:
    - web-sxzz
  only:
    - stag
  cache:
    paths:
      - node_modules/
  script:
    - npm set registry https://registry.npm.taobao.org
    - npm install --progress=false
    - npm run build:stage
    - docker build -t "$IMAGE_ADDRESS:$IMAGE_VERSION_TEST.stag" .
    - docker push "$IMAGE_ADDRESS:$IMAGE_VERSION_TEST.stag"

development:
  stage: development
  tags:
    - web-sxzz
  only:
    - dev
  cache:
    paths:
      - node_modules/
  script:
    - npm set registry https://registry.npm.taobao.org
    - npm install --progress=false
    - npm run build:test
    - docker build -t "$IMAGE_ADDRESS:$IMAGE_VERSION_TEST.test" .
    - docker push "$IMAGE_ADDRESS:$IMAGE_VERSION_TEST.test"
     # 需要配置ssh免密登录
    - ssh -t -t root@xxx -p 22 "/root/myDeployment/wfw-test/web-lxc/web-sxzz/deploy.sh"

配置SSH 免密登录

??gitlab-runner安装在: A服务器
??准备部署的服务器是: B服务器

1. 首先在A服务器检查 /home/gitlab-runner/.ssh 下面是否有 id_rsa.pub 文件
2. 如果没有的话 在A服务器上切换成 gitlab-runner 用户 

3. 使用ssh-keygen -t rsa生成ssh的公钥和私钥 // 回车之后3次回车即可
4. /home/gitlab-runner/.ssh 下会生成 id_rsa.pub 和 id_rsa 文件
5. 将id_rsa.pub 上传到 B服务器 
6. cat /id_rsa.pub >>/root/.ssh/authorized_keys
7. 重启 ssh服务 // centos7: systemctl restart sshd
8. 在A服务器上测试 ssh root@B服务地址

总结

?? 简单的ci/cd,欢迎批评指正~

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:50:46  更:2022-02-26 11:51:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:46:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码