基于 Gitlab的CICD(未完结)

基于 Gitlab的CICD(未完结)

在大多数情况,构建项目都会占用大量的系统资源,如果让gitlab本身来运行构建任务的话,显然Gitlab的性能会大幅度下降。gitlab ci最大的作用就是管理各个项目的构建状态,因此,运行构建任务这种浪费资源的事情交给一个独立的gitlab runner来做就会好很多,更重要的是gitlab runner可以安装到不同的机器上,甚至是我们本机,这样完全就不会影响Gitlab本身了。从gitlab8.0开始,gitlab CI就已经集成在Gitlab中,我们只需要在项目中添加一个.gitlab-ci.yaml文件,然后运行一个Runner,即可进行持续集成。

在大多数情况,构建项目都会占用大量的系统资源,如果让gitlab本身来运行构建任务的话,显然Gitlab的性能会大幅度下降。gitlab ci最大的作用就是管理各个项目的构建状态,因此,运行构建任务这种浪费资源的事情交给一个独立的gitlab runner来做就会好很多,更重要的是gitlab runner可以安装到不同的机器上,甚至是我们本机,这样完全就不会影响Gitlab本身了。

从gitlab8.0开始,gitlab CI就已经集成在Gitlab中,我们只需要在项目中添加一个.gitlab-ci.yaml文件,然后运行一个Runner,即可进行持续集成。

什么是Runner?

Gitlab Runner是一个开源项目,用于运行您的作业并将结果发送给gitlab。它与Gitlab CI结合使用,gitlab ci是Gitlab随附的用于协调作用的开源持续集成服务。

Gitlab Runner是用Go编写的,可以作为一个二进制文件运行,不需要特定于语言的要求

它皆在GNU/Linux,MacOS和Windows操作系统上运行。如果要使用Docker,Gitlab Runner需要最少Docker v1.13.0

项目流程演示图

A7624C76-2F87-48C1-837B-CCD55AB35584

Gitlab 安装

部署服务也可以在不跑在容器上,不影响gitlab的cicd。我这里使用rpm包安装gitlab,并且没有使用K8S安装,但是gitlab官方提供了Helm的方式在Kubernetes集群中来快速安装。

下载并安装Gitlab

本文采用清华源下载rpm包 https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

[root@gitlab ~]# wget https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-16.6.6-ce.0.el7.x86_64.rpm
[root@gitlab ~]# yum -y localinstall gitlab-ce-16.6.6-ce.0.el7.x86_64.rpm

配置Gitlab

编辑GitLab配置文件

[root@luckly mytest]# egrep -v "^#|^$" /etc/gitlab/gitlab.rb
external_url 'https://gitlab.wzhl.love'         # 修改为你自己的gitlab域名
nginx['enable'] = true
nginx['client_max_body_size'] = '2048m'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.wzhl.love.crt"        # 修改为你自己的域名证书
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.wzhl.love.key"  # 修改为你自己的域名证书密钥
nginx['ssl_ciphers'] = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"
nginx['ssl_protocols'] = "TLSv1.2 TLSv1.3"
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
node_exporter['enable'] = false
grafana['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false

使配置生效

## 配置生效
[root@gitlab ~]# gitlab-ctl reconfigure
## 重启
[root@gitlab ~]# gitlab-ctl restart

gitlab比较吃内存,内存建议不低于4G

等待安装完成后获取初始密码

[root@luckly gitlab]# egrep -v "^#|^$" /etc/gitlab/initial_root_password 
Password: w1HVglBaeQkdxOb8uWlz0hXJLYbrldBFqga/0jEJvA0=
[root@luckly gitlab]#

访问GitlabUI

https://gitlab.wzhl.love/

登录

用户名root

屏幕截图 2024-04-02 135143

Gitlab Runner安装

下载并安装Gitlab

Install GitLab Runner manually on GNU/Linux | GitLab

[root@gitlab ~]# wget https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/rpm/gitlab-runner_amd64.rpm
[root@gitlab ~]# yum -y localinstall gitlab-runner_amd64.rpm

配置gitlab runner

[root@luckly ~]# gitlab-ci-multi-runner register
Runtime platform                                    arch=amd64 os=linux pid=31248 revision=adeb4729 version=16.11.0~pre.23.gadeb4729
Running in system-mode.                            
                                                   
Enter the GitLab instance URL (for example, https://gitlab.com/):
https://gitlab.wzhl.love        # 你的gitlab地址
Enter the registration token:
VQXQoZtYn5pkXGUorhW5        # 你的gitlab-runner注册令牌
Enter a description for the runner:
[luckly]: gitlab_runner1         # 你的gitlab-runner名称,随便DIY能有效区分就行
Enter tags for the runner (comma-separated):
        # 你的gitlab-runner标签,可DIY,也可不填
Enter optional maintenance note for the runner:
        # 你的gitlab-runner描述,可DIY,也可不填
WARNING: Support for registration tokens and runner parameters in the 'register' command has been deprecated in GitLab Runner 15.6 and will be replaced with support for authentication tokens. For more information, see https://docs.gitlab.com/ee/ci/runners/new_creation_workflow 
Registering runner... succeeded                     runner=VQXQoZtY
Enter an executor: ssh, parallels, docker, kubernetes, instance, custom, shell, virtualbox, docker-windows, docker+machine, docker-autoscaler:
shell        # 选择你的gitlab-runner执行方式
[root@luckly ~]# gitlab-runner uninstall
[root@luckly ~]# gitlab-runner install --working-directory /home/gitlab-runner --user root
[root@luckly ~]# systemctl restart gitlab-runner.service
[root@luckly ~]# ps aux|grep gitlab-runner

 

© 版权声明
THE END
喜欢就支持一下吧
点赞5赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

夸夸
夸夸
还有吗!没看够!
取消
昵称表情代码图片

    暂无评论内容