使用GitLab和GitLab-Runner建立CICD

1.安装部署

直接上手部署,使用docker-compose来部署gitlab系统,创建一个用于存放gitlab的目录:

创建gitlab存储目录

mkdir -p /opt/docker/gitlab

进入到存储目录中

cd /opt/docker/gitlab

创建docker-compose.yml文件

touch docker-compose.yml
在docker-compose.yml中加入以下配置代码:
version: ‘3’
services:
gitlab:
# 使用固定版本而非 latest,确保环境的一致性和稳定性
image: ‘gitlab/gitlab-ce:latest’
restart: always
container_name: gitlab
hostname: ‘192.168.1.200’
environment:
GITLAB_OMNIBUS_CONFIG: |
# 设置时区
gitlab_rails[‘time_zone’] = ‘Asia/Shanghai’
ports:
– ’80:80′
– ‘8022:22’
volumes:
– ‘./config:/etc/gitlab’
– ‘./logs:/var/log/gitlab’
– ‘./data:/var/opt/gitlab’
healthcheck:
# 添加健康检查,确保容器正常运行
test: [“CMD”, “/opt/gitlab/bin/gitlab-healthcheck”, “–fail”]
interval: 30s
timeout: 10s
retries: 5
deploy:
resources:
limits:
# 限制内存和 CPU 使用,避免资源耗尽
cpus: ‘4.00’
memory: 4096M
reservations:
cpus: ‘2.00’
memory: 2048M
其中hostname处,需要修改为实际的主机IP地址。保存后,执行启动,等待执行完成:
docker-compose up -d

我这里由于安装过,直接启动。

最后放行端口:
firewall-cmd –add-port=80/tcp –permanent
firewall-cmd –add-port=8022/tcp –permanent
firewall-cmd –reload
2.访问配置

访问主机的ip地址,登录到gitlab管理页面,初次登录需要设置账号密码,修改完成后使用用户名root,和你设置的密码登录。

设置成中文。

刷新页面后,页面已经变成了中文界面。

关闭开放注册:

3.创建项目

创建群组,群组可以囊括多个项目,在群组里面的成员可以对群组里的项目进行管理。

然后把项目挂载到群组里,点击新建项目,即可完成项目的组建工作。

4.新建用户

在Gitlab的首页上,点击扳手图标,然后点击新建用户,我这里创建示例用户John

根据需要创建用户,设置用户信息,账号密码等。

将用户拉入群组中。

使用John账户登录时,即可看到我们的群组和项目了。

5.部署gitlab-runner

在安装gitlab-runner前,先确定gitlab的版本,强烈建议使用与gitlab版本相同的gitlab runner,以避免不必要的问题出现。

我这里的gitlab版本是13.12.0。

(1)基于Deb的系统:
添加仓库
curl -L “https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh” | sudo bash

安装

apt-cache madison gitlab-runner

$version填写您所需要安装的Gitlab-Runner版本号,如:14.10.0

sudo apt-get install gitlab-runner=$version
(2)基于RPM的系统:
curl -L “https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh” | sudo bash

yum list gitlab-runner –showduplicates | sort -r

$version填写您所需要安装的Gitlab-Runner版本号,如:14.10.0

sudo yum install gitlab-runner-$version

eg: sudo yum install gitlab-runner-13.12.0-1

安装完成后,启动gitlab
gitlab-runner -v
gitlab-runner restart
回到gitlab复制token并注册客户端,在Linux下执行。点击查看token,使用注册链接将gitlab-runner注册到gitlab中。

sudo gitlab-runner register –url http://xxx.xxx.xxx.xxx/ –registration-token $REGISTRATION_TOKEN
在gitlab-runner主机上执行。

执行完成后,在gitlab后台可以看到服务已经注册上来了。

6.运行流水线

准备一个C语言的程序做测试,在测试之前需要在gitlab-runner目标机器上安装C语编译的gcc环境。
yum -y install gcc
然后将前面的项目拉取下来,新建C语言代码 helloworld.c

include

int main() {
// 打印 “Hello, World!” 到控制台
printf(“Hello, 运维贼船!\n”);
return 0;
}
新建.gitlab-ci.yml,脚本的文件名必须为此默认的文件名。

定义使用的 Docker 镜像,这里使用官方的 GCC 镜像

image: gcc:latest

定义不同的阶段,这里只有一个编译和运行阶段

stages:

  • build_and_run

定义一个作业,名为 compile_and_run,属于 build_and_run 阶段

compile_and_run:
stage: build_and_run
script:
# 编译 helloworld.c 文件,生成可执行文件 helloworld
– gcc -o helloworld helloworld.c
# 运行生成的可执行文件
– ./helloworld
在提交代码前,要将gitlab-runner绑定到本项目上,如图所示,将项目点击为启用。

确保在已注册的项目上。

否则,当提交代码时不会自动执行,gitlab-runner将处于阻塞状态。

再次提交代码,从管理CI/CD的流水线中已经看见运行成功。可以基于此Demo项目实现适配企业的项目。

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/425126.html

联系我们
联系我们
分享本页
返回顶部