当前位置:首页 > 技术分析 > 正文内容

10分钟搞定gitlab-ci自动化部署

ruisui884个月前 (01-08)技术分析24

gitlab-ci 是持续集成工具/自动化部署工具,类似 jenkins。

持续集成 是将代码集成到共享存储库并尽可能早地自动构建/测试每个更改的实践 - 通常一天几次。

概述

在编码完成时都会进行打包发布过程,如果每次都手动操作这一步骤就会浪费时间,效率低下。所以就有了持续集成。

准备事项

请提前安装以下软件,本文不介绍如何安装。

  • gitlab
  • git

配置SSH Key

这一步至关重要,如果已配置可直接跳过。 如果不配置的话每次git pull都会要求输入密码,这样就做不到自动化了。

输入以下命令,一直回车即可

ssh-keygen -t rsa -b 4096 -C "你的邮箱@example.com"

查看生成的公钥, 并复制下来

cat ~/.ssh/id_rsa.pub

在gitlab上添加 SSH Key, 至此完成

新建git仓库

这一步可选,如果你已经有项目可直接跳过,只是为了照顾新人

1、在gitlab上新建项目

2、克隆仓库, 服务器和本地机器都要克隆,位置随意。 我把仓库克隆到了 /home/test/

git@localhost:root/test.git

安装 gitlab-runner

1、使用gitlab官方提供的仓库

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

2、使用yum进行安装

sudo yum install gitlab-runner

查看Runners配置信息

将 url 和 token复制保存下来,接下来的配置需要用到这2个。

位置 工程项目 -> Settings -> CI/CD -> Runners(点击右侧Expand展开起来就能看到)

url: http://localhost:8088/

token: LquGyHsNbzB2uBBxQMMj

注册gitlab-runner

安装完gitlab-runner还需要进行注册

1、输入以下命令进行注册

sudo gitlab-runner register

2、提示 Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):

将url粘贴并回车(不要说不知道~)

http://localhost:8088/

3、提示 Please enter the gitlab-ci token for this runner:

token粘贴并回车(不要说不知道~)

LquGyHsNbzB2uBBxQMMj

4、提示 Please enter the gitlab-ci description for this runner:

描述,随便输入

test build

5、提示 Please enter the gitlab-ci tags for this runner (comma separated):

输入标签, 可随意输入, 我就叫做 build

build

6、提示 Please enter the executor: docker, parallels, shell, ssh, docker+machine, custom, docker-ssh, virtualbox, docker-ssh+machine, kubernetes:

这一步根据自己的需求选择,这里选择 shell, 然后回车

shell

注册完成!~

注册 gitlab-ci-multi-runner

这一步和注册 gitlab-runner 一模一样,输入同样的信息即可

sudo gitlab-ci-multi-runner register

运行 gitlab-runner

查看是否运行成功,就在查看配置信息这里, 绿色圆点表示运行成功

如果上述没有运行,就执行这一步,否则跳过

gitlab-runner run

编写 gitlab-ci.yml

在本机项目根目录新建 .gitlab-ci.yml 然后写入:

stages:
 - build
# task-1 名字随意,代表一个工作
task-1:
 stage: build
 # 执行脚本, 这段脚本会在服务器执行
 script:
 - mkdir -p /home/temp_dir
 tags: 
 # 标签名字,注册runner时所填写的tag
 - build
 only:
 # 只有 master 分支才会执行
 - master

提交到远程仓库, gitlab 会侦测项目根目录下是否有 .gitlab-ci.yml, 如果有就会执行内容里面的任务。

查看本次任务是否执行成功, 如果出现 passed 表明成功执行

不过呢,并非都是那么好运气的,有以下几种情况出现:

  • pending 系统资源可能不足
  • canceled 取消执行 或 根目录没有 .gitlab-ci.yml
  • failed 任务失败, 基本上是 .gitlab-ci.yml 编写有误

上面的任务只是每次提交会在 home 目录下新建 temp_dir

如果想每次提交进行自动打包/重启呢?例如node服务端

只要在 script 字段编写一系列命令即可, 或者执行 shell 脚本

stages:
 - build
# task-1 名字随意,代表一个工作
task-1:
 stage: build
 # 执行脚本, 这段脚本会在服务器执行
 script:
 - cd /home/test
 - git pull
 - npm run build
 - pm2 restart all
 tags: 
 # 标签名字,注册runner时所填写的tag
 - build
 only:
 # 只有 master 分支才会执行
 - master

.gitlab-ci.yml 配置信息非常多,可参考 官方yaml配置

gitlab-runner其他命令

运行 gitlab-runner

gitlab-runner run

查看 gitlab-runner 状态

gitlab-runner status

查看注册列表

gitlab-ci-multi-runner list

删除注册信息

gitlab-ci-multi-runner unregister --name "名称"

最后

gitlab-ci 基本上是可以满足大部分自动化部署场景的,如果想功能强大点的可上 jenkins。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/114.html

分享给朋友:

“10分钟搞定gitlab-ci自动化部署” 的相关文章

智能计费、综合管控,爱博精电帮您快速构建水电费预付费管理系统

近年来,随着企业经营管理意识的加强,商业建筑的物业管理部门对于水电费的收缴越来越重视,在实际运营中,因为服务、管理或其他方面的纠纷,商户拖欠电费的情况时有发生,管理部门为了消除收费难、垫付水电费过多、偷窃电等诸多难题,急需改变传统水电费收缴方式。但是常规的水电预付费改造面临着改造难度大、改造周期长、...

面试官:聊聊你知道的Vue与React的区别

最近面到很多大公司的时候,小编都会碰到一个很尴尬的问题,很多大公司的技术栈都是React,但是小编学的是Vue,其实从本质上来说两者都是比较优秀的前端框架,所以有些面试官会问到Vue和React的区别。小编认真整理了一些自己所知道的Vue和React的区别,给大家分享分享。1. 模板语法 vs JS...

Gitlab+Jenkins通过钩子实现自动部署web项目,图文详细教程

扩展参考:Jenkins+Gitlab通过脚本自动部署回滚web项目至集群 一:基础环境介绍及准备1):Gitlab服务器:ubuntu 192.168.152.131 ---参考搭建:Linux安装gitlab,docker安装gitlab教程2):Jenkins服务器:ubunu 192.168...

如何在GitLab上回退指定版本的代码?GitLab回退指定版本问题分析

在Git中,回退到指定版本并不是删除或撤销之前的提交,而是创建一个新的提交,该提交包含指定版本的内容。这意味着您需要将当前代码更改与指定版本之间的差异进行比较,并将其合并到一个新的提交中。如果您没有更新本地代码,并且您希望将 GitLab 仓库回退到指定版本,您可以使用以下命令:git fetchg...

博信股份新战略后再推新品 TOPPERS E2耳机售价199元

中新网6月21日电 20日,博信股份在北京正式推出新品TOPPERS主动降噪耳机E2,这是博信股份继2月战略暨新品发布会后的第二次新品亮相。价格方面,TOPPERS主动降噪耳机E2零售价199元,并于6月20日下午4点在京东商城公开销售。据介绍,TOPPERS主动降噪耳机E2采用AMS(奥地利微电子...

7 招教你轻松搭建以图搜图系统

作者 | 小龙责编 | 胡巍巍当您听到“以图搜图”时,是否首先想到了百度、Google 等搜索引擎的以图搜图功能呢?事实上,您完全可以搭建一个属于自己的以图搜图系统:自己建立图片库;自己选择一张图片到库中进行搜索,并得到与其相似的若干图片。Milvus 作为一款针对海量特征向量的相似性检索引擎,旨在...