【centos7】centos7安装gitlab

news/2024/11/30 7:48:38/

前言

主要内容

GitLab社区版部署
GitLab配置禁用创建组权限
GitLab配置邮件(SMTP)
GitLab常用命令说明

GitLab 介绍

GitLab 一个开源的 git 仓库管理平台,方便团队协作开发、管理。在 GitLab 上可以实现完整的 CI(持续集成)、CD(持续发布)流程。而且还提供了免费使用的Plan,以及免费的可以独立部署的社区版本 , 地址。

官网:传送门
镜像地址:传送门

本篇环境信息

  • 服务器信息

服务器名称: GitLab
操作系统:Centos 7
硬件配置: 4C8G
说明:部署 GitLab 社区版

  • 软件

工具 / 环境:GitLab
版本: 社区版 14.0.5

准备工作

配置清华大学镜像仓库

新建仓库配置文件,使用 vim /etc/yum.repos.d/gitlab-ce.repo 命令,输入以下内容

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

注:这步可以不要

更新 yum缓存

# 重新 yum 编译仓库缓存
$ sudo yum makecache# 建立元数据缓存
$ sudo yum install gitlab-ce

注:这步也可以不要。不要的好处是可以指定要想安装的版本。

安装基础依赖

# 安装基础依赖
$ sudo yum -y install policycoreutils openssh-server openssh-clients postfix# 启动 ssh 服务 & 设置为开机启动
$ sudo systemctl enable sshd & sudo systemctl start sshd

安装 Postfix

Postfix 是一个邮件服务器,GitLab 发送邮件需要用到

# 安装 postfix
$ sudo yum install -y postfix# 启动 postfix 并设置为开机启动
$ sudo systemctl enable postfix & sudo systemctl start postfix

开放 ssh 以及 http 服务(80 端口)

# 开放 ssh、http 服务
$ sudo firewall-cmd --add-service=ssh --permanent & sudo firewall-cmd --add-service=http --permanent# 重载防火墙规则
$ sudo firewall-cmd --reload

部署过程

本次我们部署的是社区版: gitlab-ce ,如果要部署商业版可以把关键字替换为:gitlab-ee

1、Yum安装GitLab

下载指定版本的 gitlab,可以在清华大学镜像站去选择:地址

$ wget http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm

安装 GitLab 社区版

$ rpm -i gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm

安装成功后会看到 gitlab-ce 打印了以下图形

2、配置 GitLab站点 Url和端口号

GitLab 默认的配置文件路径是 /etc/gitlab/gitlab.rb

默认的站点 Url 配置项是:external_url 'http://gitlab.example.com

这里我将 GitLab 站点 Url 修改为 http://127.0.0.1:8000 也可以用域名代替 IP,这里根据自己需求来即可

# 修改配置文件
$ sudo vi /etc/gitlab/gitlab.rb# 配置首页地址(大约在第 15 行)
$ external_url 'http://127.0.0.1:8000'# 开放端口号
$ firewall-cmd --zone=public --add-port=8000/tcp --permanent
# 重启防火墙
$ systemctl restart firewalld
# 查看是否成功
$ firewall-cmd --zone=public --query-port=8000/tcp

3、启动并访问GitLab

启动GitLab
# 重新配置并启动
$ sudo gitlab-ctl reconfigure# 完成后将会看到如下输出
Running handlers:
Running handlers complete
Chef Infra Client finished, 10/776 resources updated in 45 seconds
gitlab Reconfigured!# 启动 gitlab
$ gitlab-ctl restart# 查看启动详细信息
$ systemctl status gitlab-runsvdir.service

访问 GitLab

将设置的域名 DNS 解析到服务器 IP,或者修改本地 host 将域名指向服务器 IP。访问:
http://192.168.61.129:8000/users/sign_in

进入首页,随后进行登录,管理员账号默认用户名是root。
初始化密码可以在 GitLab初始化文件查看

$ cat /etc/gitlab/initial_root_password
# 复制 Password 后面的内容即可
Password: E+EA7WZie9zJbMQ2gwISeVN/We9DBZmYsMFpbjzhYcc=

登录进来进入首页:

四、gitlab内存过高情况

cpu占用不高但是内存不高,一个gitlab内存占用过高

free -h

1、修改gitlab配置

vim /etc/gitlab/gitlab.rb

gitlab_rails[‘time_zone’] = ‘Asia/Shanghai’ //修改时间格式
puma[‘worker_processes’] = 1//可以将worker内存上限设置小一点
prometheus_monitoring[‘enable’] = false // 不启用普罗米修斯监控
postgresql[‘shared_buffers’] //减少数据库缓存(默认为256MB 我改为64MB了)
postgresql[‘max_worker_processes’] //减少数据库并发数(默认为8 我改为1了)
sidekiq[‘max-concurrency’] //减少sidekiq并发数,改为1
sidekiq[‘min-concurrency’] //减少sidekiq并发,改为1

2、邮件配置

配置邮箱可以让 GitLab 在发生相应事件的时候进行邮件通知

比如:找回密码、添加邮箱等
首先登录邮箱设置里面 开启服务

# 修改配置文件
$ sudo vi /etc/gitlab/gitlab.rb# 邮件配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = 'smtp.163.com'
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = 'yourmail@163.com'
gitlab_rails['smtp_password'] = '开启服务后给的授权码,不是邮箱登陆密码'
gitlab_rails['smtp_domain'] = 'smtp.163.com'
gitlab_rails['smtp_authentication'] = 'login'
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'yourmail@163.com'
gitlab_rails['gitlab_email_display_name'] = 'Gitlab'# 保存后,重新配置并启动 GitLab
$ sudo gitlab-ctl reconfigure

3、重启服务

gitlab-ctl reconfigure
gitlab-ctl restart
# 测试是否配置成功
sudo gitlab-rails console
irb(main):001:0> Notify.test_email('xxxxxxx@qq.com', 'hello', 'bbbb').deliver_now

五、GitLab 常用配置

2、禁用创建组权限

GitLab 默认所有的注册用户都可以创建组。但对于团队来说,通常只会给 Leader 相关权限。

虽然可以在用户管理界面取消权限,但毕竟不方便。我们可以通过配置 GitLab 默认禁用创建组权限。

# 修改配置文件
$ sudo vi /etc/gitlab/gitlab.rb# 开启 gitlab_rails['gitlab_default_can_create_group'] 选项,并将值设置为 false
### GitLab user privileges
$ gitlab_rails['gitlab_default_can_create_group'] = false# 保存后,重新配置并启动 GitLab
$ sudo gitlab-ctl reconfigure

3、gitlab-ctl 常用命令介绍

命令说明
check-config检查在 gitlab 中是否有任何配置。在指定版本中删除的 rb
deploy-page安装部署页面
diff-config将用户配置与包可用配置进行比较
remove-accounts删除所有用户和组
upgrade升级
service-list查看所有服务
once如果 GitLab 服务停止了就启动服务,如果已启动就不做任何操作
restart重启 GitLab 服务
start如果 GitLab 服务停止了就启动服务,如果已启动就重启服务
stop停止 GitLab 服务
status查看 GitLab 服务状态
reconfigurereconfigure 重新配置 GitLab 并启动

六、参考文章

原文链接:https://blog.csdn.net/IT_road_qxc/article/details/127689533


http://www.ppmy.cn/news/1132363.html

相关文章

基于SpringBoot的校园点餐系统

基于SpringBoot的校园点餐系统的设计与实现,前后端分离 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色:用户、管理员 用户前台:…

Airtool for Mac——高效便捷的系统菜单栏网络工具!

在我们的数字化生活中,对于网络连接的稳定性和速度有着越来越高的需求。为了满足您对网络质量的实时监测和分析的需求,我们向大家介绍一款强大的Mac系统菜单栏网络工具——Airtool! Airtool是一款专为Mac设计的网络工具,它能够提…

自动驾驶中的感知模型:实现安全与智能驾驶的关键

自动驾驶中的感知模型:实现安全与智能驾驶的关键 文章目录 引言感知模型的作用感知模型的技术安全与挑战结论 2023星火培训【专项营】Apollo开发者社区布道师倾力打造,包含PnC、新感知等的全新专项课程上线了。理论与实践相结合,全新的PnC培训…

代码的工厂模式

概念: 代码的工厂模式是一种设计模式,用于创建对象实例而无需直接调用构造函数。它提供了一种更加灵活和可维护的方式来创建对象,尤其是在需要根据不同情况创建不同类型的对象时非常有用。工厂模式隐藏了对象的创建细节,使代码更…

Unity Game FrameWork—模块使用—资源热更新

工程选项配置​ json文件解析不要用默认的unity解析方式,unity解析有问题,使用StarForce.LitJsonHelper​ ​ 资源模式改为热更新模式​ ​ 配置文件配置​ BuiltinDataComponent自定义组件引用率了Buildinfo.txt配置文件,该文件配置了热更…

【C语言数据结构】栈-顺序存储(顺序栈)

栈-顺序存储 代码实现 代码实现 #include<stdio.h> #include<stdlib.h> #include<stdbool.h>//栈的长度的固定为100 #define MaxSize 100 //元素数据类型 #define ElemType inttypedef struct{//整个栈的数据ElemType data[MaxSize];//栈顶指针(说是指针&am…

【Java】成员变量与局部变量的区别

问题&#xff1a;什么是成员变量与局部变量 成员变量&#xff1a;类中的方法外的变量 就是成员变量局部变量&#xff1a;方法中的变量 局部变量 区别成员变量局部变量类中位置不同类中方法外类中方法里内存中 位值堆内存栈内存生命周期不同随着对象存在而存在&#xff0c;随着对…

取消excel表格中的隐藏行

Excel工作表中的行列隐藏了数据&#xff0c;如何取消隐藏行列呢&#xff1f;今天分享几个方法给大家 方法一&#xff1a; 选中隐藏的区域&#xff0c;点击右键&#xff0c;选择【取消隐藏】就可以了 方法二&#xff1a; 如果工作表中有多个地方有隐藏的话&#xff0c;还是建…