【GITLAB】 服务配置可持续集成部署的项目案例 - 安装篇

前言

什么是CI/CD?
CI (Continuous Integration) 持续集成, CD (Continuous Delivery) 持续部署

clipboard.png

个人理解

  1. 本地开发代码, 提交远程仓库
  2. 仓库接收到提交操作,进入持续集成, 包括编译,自动化测试 (CI)
  3. 编译测试成功后,部署到线上服务器(CD)

gitlab-runner 介绍

gitlab 提供了一个持续集成的服务, 如果你在项目仓库里面加入.gitlab-ci.yml文件 同时给项目配置了gitlab-runner, 那么每一次push commit, 都会触发你的 CI pipeline (持续集成管道)

安装gitlab-runner

官方安装文档

代理安装 gitlab-runner

如果机器能够正常访问外网,那么查阅官方文档进行安装

一般来说,内网与外网是处于隔断的情况,但是可以通过http代理服务器,允许内网访问外网的资源。
假设代理服务器机器的ip为: http://192.168.1.100:8000

具体步骤:

编辑 yum.conf

sudo vi /etc/yum.conf

# 追加一行 
proxy=http://192.168.1.100:8000

添加 GitLab's official repository (yum仓库)

http_proxy=http://192.168.1.100:8000 curl -L -x $http_proxy https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sed  "s#curl -sSf#curl -x $http_proxy -sSf#g" > script.rpm.sh
sudo bash script.rpm.sh

下载安装gitlab

# 查看gitlab-runner的版本
yum list gitlab-runner --showduplicates | sort -r

gitlab-runner.x86_64                10.5.0-1                runner_gitlab-runner
gitlab-runner.x86_64                10.4.0-1                runner_gitlab-runner
gitlab-runner.x86_64                10.3.1-1                runner_gitlab-runner
gitlab-runner.x86_64                10.3.0-1                runner_gitlab-runner
gitlab-runner.x86_64                10.2.1-1                runner_gitlab-runner
gitlab-runner.x86_64                10.2.0-1                runner_gitlab-runner
gitlab-runner.x86_64                10.1.1-1                runner_gitlab-runner
gitlab-runner.x86_64                10.1.0-1                runner_gitlab-runner
gitlab-runner.x86_64                10.0.2-1                runner_gitlab-runner
gitlab-runner.x86_64                10.0.1-1                runner_gitlab-runner
gitlab-runner.x86_64                10.0.0-1                runner_gitlab-runner

# 指定安装某个版本
sudo yum install gitlab-runner-10.1.1-1 -y

安装完成后, 出现一个/home/gitlab-runner 文件夹

gitlab-runner 命令

主要的命令操作有如下: install, start, stop, status, register, unregister

install 命令
安装配置 gitlab-runner, 如果使用yum install 则会默认安装

# --user 用户名
# --working-directory 工作目录
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

start 命令
sudo gitlab-runner start, 启动服务

stop 命令
sudo gitlab-runner stop, 关闭服务

status 命令
sudo gitlab-runner status, 查看服务运行状态

register 命令
注册一个任务,这个属于gitlab-runner 比较重要的命令, 我们需要结合一个实际的案例进行演示,
项目仓库地址: https://gitlab.com/liyanlong/...

在仓库中查阅CI / CD Setting, 得到 CI token

图片描述

sudo gitlab-runner register
 
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
https://gitlab.com/

Please enter the gitlab-ci token for this runner:
gHKt7inn3nBzJ2m5gx-P

Please enter the gitlab-ci description for this runner:
hostname

Please enter the gitlab-ci tags for this runner (comma separated):
node,test

Whether to run untagged builds [true/false]:
true

Whether to lock the Runner to current project [true/false]:
false

Registering runner... succeeded                     runner=gHKt7inn
Please enter the executor: docker+machine, kubernetes, docker-ssh, ssh, shell, virtualbox, docker-ssh+machine, docker, parallels:
shell

注册后使用 gitlab-runner list 查阅配置

sudo gitlab-runner list
Listing configured runners ConfigFile=/etc/gitlab-runner/config.toml
hostname Executor=shell Token=token URL=https://gitlab.com/

注册后,gitlab 页面将出现一个运行的runner

clipboard.png

gitlab-runner unregister 命令

  1. 通过 url 和 token 取消注册 gitlab-runner unregister --url http://gitlab.example.com/ --token t0k3n
  2. 通过name取消注册 gitlab-runner unregister --name test-runner
  3. 删除所有注册runner gitlab-runner unregister --all-runners

知识点

2017-2018年目标

1.4k 声望
828 粉丝
0 条评论
推荐阅读
【Node.js】基础核心模块之 module
介绍 Node.js的模块设计,每一个件都作为一个模块。模块循环引入问题在Node.js如何处理,模块加载规则又有哪些,具体详情请看下文。 模块定义 采用 common.js 的规则, 关键字 {代码...} 模块的内部变量 __dirname...

wayneli3阅读 2.8k评论 1

Git操作不规范,战友提刀来相见!
年终奖都没了,还要扣我绩效,门都没有,哈哈。这波骚Git操作我也是第一次用,担心闪了腰,所以不仅做了备份,也做了笔记,分享给大家。问题描述小A和我在同时开发一个功能模块,他在优化之前的代码逻辑,我在开...

王中阳Go5阅读 2k评论 2

封面图
Git 入门与实践
Git 入门与实践推荐:猴子都能懂的 GIT 入门Git --everything-is-loca 官方文档Git 教程-廖雪峰Git 的使用方式有很多。图形化 —— 小乌龟(Tortoise Git )、命令行—— git bash、IDE 集成等 ......目录1. 基础配置...

RainBow1阅读 2.2k

git patch常用方法
针对指定的commit range生成patch,默认对每一个commit分别单独生成patch文件。patch文件按照commit的先后顺序从1开始编号。patch文件会生成到当前目录下。

黑暗森林1阅读 13.1k评论 1

openSSH升级公钥失效Permission denied (publickey)解决方案
背景centos系统升级openSSH后,服务器上无法再拉取代码,报错如下:原因服务器重新安装SSH后公钥改变,需要重新安装ssh-keygen -t rsa -C "邮箱地址"生成公钥,删除gitlab原有公钥,但是git pull依然报错如下:依...

兰俊秋雨1阅读 1.2k

Git 分支管理策略汇总
我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的流程。所以查了一些资料,总结出下面这篇文章,一共包含四种常见的分支管理策略,分享给大家。

alwaysbeta3阅读 894

封面图
mac下git命令自动补全
本文亲测可用。老版本macos方法:1、打开网页,[链接]全选,复制内容。2、在~/.bash_profile文件(如果没有需要创建)中加入以下内容即可生效

zorro阅读 4.9k

2017-2018年目标

1.4k 声望
828 粉丝
宣传栏