C/C++教程

gitlab的CI/CD实现

本文主要是介绍gitlab的CI/CD实现,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.前言

  搭建gitlab服务器至少需要2核4G的服务器,笔者在1核2G的服务器上尝试搭建过,但是基本上完全跑不起来,中途会有各种各样的问题,每次gitlab-ctl reconfigure的时候基本上都会卡死。

2.linux centos8搭建gitlab过程

安装gitlab:这里推荐清华大学的开源软件镜像站下载(https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/)gitlab安装包

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/gitlab-ce-12.10.0-ce.0.el8.x86_64.rpm

 

 2.1然后安装

rpm -i  gitlab-ce-12.10.0-ce.0.el8.x86_64.rpm

 安装成功后会出现这样的一个提示

2.2 如果不是云服务器,则需要打开防火墙,安装postfix等

sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

  在执行sudo firewall-cmd --permanent --add-service=http时候有可能出现FirewallD is not running问题:意思是防火墙没有打开
  解决方案,执行命令:systemctl start firewalld开启防火墙,截图如下:

2.3 安装Postfix以发送通知电子邮件,依次执行命令

sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

 gitlab的配置文件目录在/etc/gitlab/gitlab.rb

执行命令:vim  /etc/gitlab/gitlab.rb 
找到 external_url 'http://gitlab.example.com'
替换成你的Linux服务器的地址比如说:external_url 'http://192.168.1.1'

 

 

 配置发送邮件,注意qq邮箱的smtp_address为smtp.qq.com,smtp_password不是qq的登录密码,而是在qq邮箱设置里面开通smtp服务的授权码。

 

 配置好后可以进行邮件测试

输入命令gitlab-rails console

gitlab-rails console

irb(main):001:0> Notify.test_email('xxxx@qq.com', 'Message Subject', 'Message Body').deliver_now

 配置完成后输入命令gitlab-ctl reconfigure

gitlab相关操作及说明

/etc/gitlab/gitlab.rb          #gitlab配置文件
/opt/gitlab                    #gitlab的程序安装目录
/var/opt/gitlab                #gitlab目录数据目录
/var/opt/gitlab/git-data       #存放仓库数据
gitlab-ctl reconfigure         #重新加载配置
gitlab-ctl status              #查看当前gitlab所有服务运行状态
gitlab-ctl stop                #停止gitlab服务
gitlab-ctl stop nginx          #单独停止某个服务
gitlab-ctl tail                #查看所有服务的日志
gitlab-ctl start         #开启gitlab服务
gitlab-ctl restart         #重启gitlab服务

Gitlab的服务构成:
nginx:                 静态web服务器
gitlab-workhorse        轻量级反向代理服务器
logrotate              日志文件管理工具
postgresql             数据库
redis                  缓存数据库
sidekiq                用于在后台执行队列任务(异步执行)

 gitlab依赖的服务

 

这篇关于gitlab的CI/CD实现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!