CI/CD之gitlab和gitlab-runner安装

650 阅读4分钟

服务器内存小于4g时,安装高版本gitlab会出现内存不足的情况,可将硬盘部分存储区域作为内存使用,内存4g及以上可略过此步骤

1.首先添加swap分区

在shell中输入指令

使用dd命令创建名为swapfile 的 swap 交换文件(文件名和目录任意)

dd if=/dev/zero of=/var/swapfile bs=1024 count=2097152
// 或者
dd if=/dev/zero of=/var/swapfile bs=1024 count=2048k

解释:

if:输入文件,input file

of:输出文件,output file

dev/zero: 是linux的一种特殊字符设备(输入设备),可以用来创建一个指定长度用于初始化的空文件,如临时交换文件,该设备无穷尽地提供

bs=1024: 单位数据块(block)同时读入/输出的块字节大小为1024 个字节,即1kb,bs=block size

count=2048000:数据块(block)数量为2048000,即2048000kb; 可以计算swap分区的容量为:2097152/1024/1024 = 2GB

count=2048k: k是单位,表示kb;也可用m,表示mb

image.png

2.将交换文件格式化并转换为swap分区

mkswap /var/swapfile

image.png

3.挂载分区并激活分区

swapon /var/swapfile

image.png 此处的话会提示:“不安全权限0644,建议使用0600”。实际上已经激活过了,不过也可以修改权限,看个人选择。

// 修改权限的指令
chmod -R 0600 /var/swapfile

4.查看swap是否添加成功

free -h

image.png

5.修改fstab文件,使新加的2G交换空间在系统重新启动后自动生效

echo "/var/swapfile swap swap defaults 0 0" >>/etc/fstab

关于swap和fstab的信息可以参考:learnku.com/articles/20…

参考文档:juejin.cn/post/684490…

参考文档:segmentfault.com/a/119000004…

1.手动安装gitlab

清华大学开源镜像mirrors.tuna.tsinghua.edu.cn/

gitlab的版本跟CentOs系统版本有关联,CentOs8可以安装el8版本的gitalb,清华源目前只有el7版本,CentOs8 安装el7版本gitlab时,会提示error(policycoreutils-python is needed by gitlab-ce-11.10.0-ce.0.el7.x86_64),且未找到解决方法,后将服务器系统重装为CentOs7

image.png

这里下载了gitlab社区版,选择的是yum的rpm

image.png

浏览器下载完成后,用shell链接服务器,使用 rz 指令,将文件上传至服务器

使用rpm指令安装上传的gitlab文件

rpm -i gitlab-ce-10.1.0-ce.0.el7.x86_64.rpm 

提示:policycoreutils-python is needed by gitlab-ce-10.1.0-ce.0.el7.x86_64

则先安装 policycoreutils-python

yum install policycoreutils-python

再次使用rpm指令安装gitlab,按页面提示操作,等待安装成功

// gitlab 的一些指令
gitlab-ctl restart //重启
gitlab-ctl sotp //停止
gitlab-ctl reconfigure //重置

使用gitlab-ctl stop停止gitlab,打开gitlab配置文件,修改内容

// 打开配置文件
vim /etc/gitlab/gitlab.rb

shell中,键盘按下"/",可输入搜索的内容,回车后搜索,"n"往下查找,"N"往上查找

搜索:

external_url 值更改为:服务器地址或域名+端口号

nginx['listen_port'] 值更改为: 端口号

image.png

image.png

保存退出后,执行gitlab-ctl reconfigure,等待配置生效

访问 服务器地址或域名+端口号 ,可出现gitlab页面,第一次需设置root账号的密码,设置完成后,可用root账号登录(访问失败时,可检查服务器防火墙设置中的端口号是否放行;使用宝塔的可在“安全”-“系统防火墙”中放行端口号

// 可查看root账户的初始化密码
cat /etc/gitlab/initial_root_password

image.png

2.下载安装gitlab-runner

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

yum install gitlab-runner

安装指定版本,gitlab-runner版本与安装的gitlab大版本保持一致

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

yum list gitlab-runner //可查看gitlab-runner的各类版本全称

yum i gitlab-runner.x86_64.10.1.0-1  // 安装

sudo gitlab-runner start //启动

3.配置gitlab-runner

sudo gitlab-runner register //配置gitlab-runner

image.png 1.输入gitlab地址

2.输入gitlab中runner的token

这里的token分为两种 一种是 Shared Runner ,该 Runner 所有项目都可以使用 位置:顶部设置图标🔧 -> 左侧栏Overview -> Runner image.png

另一种是 Specific Runner ,该 Runner 指定具体某个项目才可使用 位置:进入某个项目 -> 左侧栏Setting -> CI/CD -> 在内容区域找到Runners一项,点击展开

image.png

3.输入描述(可在GitLab中更改)

4.输入tag(可在GitLab中更改)

5.Whether to run untagged builds (是否运行未标记的生成)

6.Whether to lock the Runner to current project(是否将运行器锁定到当前项目)

7.Please enter the executor: kubernetes, docker, docker-ssh, parallels, ssh, docker-ssh+machine, shell, virtualbox, docker+machine: 我这里输入的shell

设置完成后,gitlab里会增加一条数据

image.png

在项目根目录新建 .gitlab-ci.yml 文件

简单的示例:

# 定义 stages(阶段,会依次执行)
stages:
  - install_deps
  - build_prod
  - deploy_prod

cache:
  key: ${CI_BUILD_REF_NAME}
  paths:
    - node_modules/
    - dist

# 安装构建依赖
install_deps_job:
  stage: install_deps
  # 在哪个分支才会执行脚本
  only:
    # - dev
    # - release
    - master
  script:
    - echo '模拟安装构建依赖阶段'
    - echo CI_BUILD_REF_NAME 'CI_BUILD_REF_NAME'
  tags:
    - test1

# 构建预prod环境src目录下应用
build_prod_job:
  stage: build_prod
  only:
    - master
  script:
    - echo '构建预prod环境src目录下应用阶段'
  tags:
    - test1

# 部署生产环境
deploy_prod_job:
  stage: deploy_prod
  only:
    - master
  script:
    - echo '部署生产环境阶段'
    - 
  tags:
    - test1

文件push后,会自动触发CI/CD,依次执行.gitlab-ci.ymlstages设定的 install_deps、build_prod和deploy_prod阶段,CI/CD已能正常工作。

image.png