Technology Sharing

  • 首页
  • 资料分享
  • 在线工具
    • 随机密码生成器
  • 介绍
  • RSS
  • privacy
  • 云产品推广
    • 腾讯云
    • 阿里云
Share IT knowledge
  1. 首页
  2. git
  3. 正文

GitLab CI/CD部署

2022年11月9日 241点热度 1人点赞 0条评论

GitLab CI/CD 是一个内置在GitLab中的工具,用于通过持续方法进行软件开发,本文将介绍GitLab CI/CD部署流程。

  • Continuous Integration (CI) 持续集成
  • Continuous Delivery (CD) 持续交付
  • Continuous Deployment (CD) 持续部署

环境介绍

  • gitlab网址:http://www.nico.com
  • gitlab项目:nico_test
  • 项目部署服务器:ubuntu20.04

实现效果:gitlab代码更新==》触发gitlab CI/CD==》执行服务器上的脚本

服务器部署

1、安装gitlab-runner

# curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
# apt install gitlab-runner

2、与gitlab nico_test项目建立连接

# gitlab-runner register
Runtime platform                                    arch=amd64 os=linux pid=63794 revision=0d4137b8 version=15.5.0
Running in system-mode.

Enter the GitLab instance URL (for example, https://gitlab.com/):
http://www.nico.com/                 #从gitlab项目中获取,下面有介绍
Enter the registration token:
GR1348941ctFZzy9TZyza1tPVGzKz        #从gitlab项目中获取,下面有介绍
Enter a description for the runner:
[test]: nico_test_CI/CD              #自定义
Enter tags for the runner (comma-separated):
test                                 #自定义
Enter optional maintenance note for the runner:

Registering runner... succeeded                     runner=GR1348941ctFZzy9T
Enter an executor: docker-ssh, virtualbox, docker+machine, instance, kubernetes, custom, docker, parallels, shell, ssh, docker-ssh+machine:
shell                                #shell代表脚本
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

Configuration (with the authentication token) was saved in "/etc/gitlab-runner/config.toml"

GitLab instance URL 与 the registration token 从下方获取

建立成功之后你可以看到活跃的Available specific runners

3、服务器创建gitlab CI/CD触发的脚本

# vim /tmp/test.sh

#!/bin/bash
echo "部署成功啦!!!!!"

赋予脚本执行权限

# chmod +x /tmp/test.sh

赋予gitlab-runner 用户执行脚本的权限

# visudo
gitlab-runner ALL=(root) NOPASSWD:/tmp/test.sh

4、设置gitlab CI/CD触发脚本条件

修改项目中的.gitlab-ci.yml 文件,如果没有这个文件可以手动添加。

stages: 
 - job1_test
 - job2_rc
 - job3_prd


job1_test:
     stage: job1_test
     script:
       - sudo /tmp/test.sh     #执行的脚本
     only:
       - test_branch           #test_branch分支发生变化时触发CI/CD执行上面脚本
     tags:
       - test                  #test标签,在上面gitlab-runner register 与服务器建立连接时定义

job2_rc: 
     stage: job2_rc
     script:
       - sudo /tmp/test.sh     #执行的脚本
     only:
       - master                #master分支发生变化时触发CI/CD执行上面脚本
     tags:
       - test                  #test标签,在上面gitlab-runner register 与服务器建立连接时定义


job3_prd: 
     stage: job3_prd
     script:
       - sudo /tmp/test.sh     #执行的脚本
     only: 
       - master                #master分支发生变化时触发CI/CD执行上面脚本
     tags:
       - test                  #test标签,在上面gitlab-runner register 与服务器建立连接时定义
     when: manual              #手从执行CI/CD

测试

修改master分支的代码,会执行job2_rc 和 job3_prd 的任务,其中job2_rc中定义的脚本自行执行,job3_prd中定义的脚本需手动点击执行

当然修改test_branch 分支的代码,就会执行job1_test中的任务,这里不做演示。

打赏微海报分享
标签: 暂无
最后更新:2022年11月11日

nico

Linux运维工程师 软考网络工程师 && 软考信息安全工程师

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

nico

Linux运维工程师
软考网络工程师 && 软考信息安全工程师

最新 热点 随机
最新 热点 随机
linux部署JDK环境 [Solved] MariaDB import issue: Error at line 1: Unknown command '\-'. Could not retrieve mirrorlist http://mirrorlist.centos.org/ CentOS 7 Kubernetes如何删除卡在“Terminating”状态的命名空间 解决GitLab Runner签名无效 如何禁用 Ubuntu "Daemons using outdated libraries" 弹出窗口
编译安装Bacula: 在Ubuntu和CentOS上的详细步骤 Centos7 升级redis版本 使用 Docker Search 命令的过滤选项来查找容器镜像 修改wordpress后台登录地址 python 获取链接跳转过程中的url、header、cookie curl 获取状态码和跳转链接
最近评论
woodcockkienzlelsj8o9+73s48g9rr3m0@gmail.com 发布于 10 个月前(07月17日) necessitatibus corporis et odit nam quo harum et c...
RonaldG 发布于 10 个月前(07月07日) Very interesting topic, thank you for putting up.&...
小黑 发布于 1 年前(12月28日) 不错
nico 发布于 2 年前(02月09日) 嘻嘻嘻!!!
Bruse 发布于 2 年前(02月09日) 我来啦!!!
nico 发布于 2 年前(12月10日) 方便查询
Justin 发布于 2 年前(12月10日) 写的很好,谢谢分享!我 Mark 一下~
nico 发布于 3 年前(11月18日) 主题的原因吧
Justin 发布于 3 年前(09月22日) 这篇文章的质量很高呀!写得很详细~ 话说你的文章是隐藏了发布时间吗?
Justin 发布于 3 年前(08月27日) 好家伙,这标题乍一看还以为你打算进军英文技术写作领域了🤓

COPYRIGHT © 2023 Technology Sharing. ALL RIGHTS RESERVED.

备案图标 皖公网安备34132402000202 皖ICP备2023004851号-1