服务器内存小于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
2.将交换文件格式化并转换为swap分区
mkswap /var/swapfile
3.挂载分区并激活分区
swapon /var/swapfile
此处的话会提示:“不安全权限0644,建议使用0600”。实际上已经激活过了,不过也可以修改权限,看个人选择。
// 修改权限的指令
chmod -R 0600 /var/swapfile
4.查看swap是否添加成功
free -h
5.修改fstab文件,使新加的2G交换空间在系统重新启动后自动生效
echo "/var/swapfile swap swap defaults 0 0" >>/etc/fstab
关于swap和fstab的信息可以参考:learnku.com/articles/20…
参考文档: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
这里下载了gitlab社区版,选择的是yum的rpm
浏览器下载完成后,用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'] 值更改为: 端口号
保存退出后,执行gitlab-ctl reconfigure,等待配置生效
访问 服务器地址或域名+端口号 ,可出现gitlab页面,第一次需设置root账号的密码,设置完成后,可用root账号登录(访问失败时,可检查服务器防火墙设置中的端口号是否放行;使用宝塔的可在“安全”-“系统防火墙”中放行端口号)
// 可查看root账户的初始化密码
cat /etc/gitlab/initial_root_password
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
1.输入gitlab地址
2.输入gitlab中runner的token
这里的token分为两种 一种是 Shared Runner ,该 Runner 所有项目都可以使用 位置:顶部设置图标🔧 -> 左侧栏Overview -> Runner
另一种是 Specific Runner ,该 Runner 指定具体某个项目才可使用 位置:进入某个项目 -> 左侧栏Setting -> CI/CD -> 在内容区域找到Runners一项,点击展开
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里会增加一条数据
在项目根目录新建 .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.yml中stages设定的 install_deps、build_prod和deploy_prod阶段,CI/CD已能正常工作。