Centos 下安装 GitLab16.2.1

embedded/2025/1/12 10:55:08/

参考

https://blog.csdn.net/weixin_46059351/article/details/140649426

https://blog.csdn.net/qq_46028493/article/details/144993598

Centos 安装 GitLab

修改 yum 的配置

首先查看目前配置的 yum:

cat /etc/yum.repos.d/CentOS-Base.repo

应该是这个样子的:

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

两个地方要改:

  • 注释掉 mirrorlist 并且打开 baseurl 的注释
  • 由于 centos7 在 24 年六月停更新版本了,所以把 baseurl 里的 mirror 改成 vault

修改后的配置:

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#released updates 
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

要修改的是标注出来的那些行:

如果还是不行,建议将 yum 源切换为阿里云:

https://www.yuque.com/u22375957/sg1s9y/gxw2ueau0dzskfef

https://blog.csdn.net/qq_46028493/article/details/144993598

创建安装脚本并执行安装

在用户 home 目录下创建 bin 目录(有了就不创建):

cd ~
mkdir bin

创建安装脚本:

vim gitlab-install.sh

脚本内容如下:

sudo yum install -y curl policycoreutils-python openssh-server perl
sudo rpm -ivh /opt/software/gitlab-ce-16.2.1-ce.0.el7.x86_64.rpm
sudo yum install -y postfix
sudo systemctl enable postfix
sudo systemctl start postfix

修改脚本权限并执行:

chmod +x gitlab-install.sh
sh gitlab-install.sh

初始化

sudo gitlab-ctl reconfigure

执行过程大概需要3分钟

默认用户名是 root,密码通过如下命令获取:

sudo cat /etc/gitlab/initial_root_password

启动后,通过 80 端口访问 gitlab 的 web 页面。

出现下面这个页面,大概率是内存不足或 Zookeeper 占用了 8080 端口(解决办法见下面的内容):

启停命令

启动命令:

sudo gitlab-ctl start

停止命令:

sudo gitlab-ctl stop

重启命令:

sudo gitlab-ctl restart

彻底卸载:

# 1 卸载 gitlab
sudo rpm -e gitlab-ce-16.2.1-ce.0.el7.x86_64# 2 删除 gitlab 文件
sudo rm -rf /etc/gitlab
sudo rm -rf /var/opt/gitlab
sudo rm -rf /opt/gitlab

修改密码

修改语言为中文

修改 external_url

external_url 配置项是 GitLab 配置文件中的一个关键设置,它指定了 GitLab 实例在外部网络中可访问的 URL。这个配置对于 GitLab 的正常运行和用户访问至关重要。

作用总结:

● 定义访问地址: 告诉 GitLab,用户应该通过哪个 URL 来访问实例。

● 影响URL生成: GitLab 在生成各种 URL(例如项目地址、用户页面等)时会以此为基础。

● 影响HTTPS配置: 如果设置了 HTTPS,这个配置会影响证书的配置。

● 确保正确访问: 只有正确配置了 external_url,用户才能通过浏览器或其他客户端访问 GitLab。

sudo vim /etc/gitlab/gitlab.rb

修改为如下内容(gitlab 所在的主机名):

external_url 'http://hadoop32'

重启生效:

sudo gitlab-ctl restart

修改 host

此处的 host 决定了 Web 端项目 Clone 标签下看到的 URL 中使用的域名或主机名,比如:

sudo vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

修改为如下内容:

  ## GitLab settingsgitlab:## Web server settings (note: host is the FQDN, do not include http://)host: hadoop32port: 80https: false

重启 gitlab 生效:

sudo gitlab-ctl restart

解决 8080 端口冲突

从GitLab 13.0开始,Puma 是默认的应用程序服务器,GitLab 14.0 及更高版本已删除对 Unicorn 的支持。Puma 需要使用 8080 端口,而 Zookeeper 当前版本的 Admin 服务也会占用 8080 端口,因此,如果 Zookeeper 先于 GitLab 启动,则通过 Web 端访问 GitLab 将会报错,错误码为 502,如下:

修改 puma.rb,将Puma绑定的 TCP 端口更改为 8089 :

sudo vim /var/opt/gitlab/gitlab-rails/etc/puma.rb
bind 'tcp://127.0.0.1:8089's

修改 gitlab.rb:

sudo vim /etc/gitlab/gitlab.rb

打开注释并修改为 8089:

puma['port'] = 8089

重新加载配置并重启 gitlab:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

重启后可能需要等待几十秒方可恢复Web端访问

解决 8060 端口冲突

默认情况下GitLab会在本地的8060端口启动服务来监控NGINX服务的状态,而Doris的brpc_port默认端口也是8060,这个端口是用于Backends之间及Backends和Frontends通信的,如果被占用则Backend进程无法启动。

我们可以修改Doris集群Backends的brpc_port端口,也可以修改GitLab的nginx-status端口,此处选择后者。

sudo vim /etc/gitlab/gitlab.rb
nginx['status'] = {"enable" => true,"listen_addresses" => ["127.0.0.1"],"fqdn" => "127.0.0.1","port" => 9999,"vts_enable" => true,"options" => {"server_tokens" => "on", # Don't show the version of NGINX"access_log" => "on", # Disable logs for stats"allow" => "127.0.0.1", # Only allow access from localhost"deny" => "all" # Deny access to anyone else}
}

重新加载配置并重启 gitlab:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

执行以下两行命令验证 8060 没有使用,9999 端口使用了:

解决头像异常问题

通过浏览器访问GitLab会发现头像显示异常,这是因为GitLab默认使用Gravatar的服务器提供头像服务,国内无法访问。

编辑 gitlab.rb 配置:

sudo vim /etc/gitlab/gitlab.rb

打开plain_url和ssl_url的注释并修改:

### Gravatar Settings
gitlab_rails['gravatar_plain_url'] = 'http://gravatar.loli.net/avatar/'
gitlab_rails['gravatar_ssl_url'] = 'https://gravatar.loli.net/avatar/'

重新加载配置并重启 gitlab:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

在到 gitlab 的页面上看头像正常了:

设置主分支名为 master

gitlab 默认主分支名为 main,需要修改为 master。


http://www.ppmy.cn/embedded/153265.html

相关文章

【数据库】二、关系数据库

文章目录 二、关系数据库1 关系2 关系数据库3 完整性约束4 关系运算 二、关系数据库 1 关系 域:一组具有相同数据类型的值的集合。 笛卡尔积:所有域(域可相同)中所有取值的组合 例如:D1{1,2,3},D2{A,b}&…

基于 Boost.Asio 和 Boost.Beast 的异步 HTTP 服务器(学习记录)

已完成功能: 支持 GET 和 POST 请求的路由与回调处理。 解析URL请求。 单例模式 管理核心业务逻辑。 异步 I/O 技术和 定时器 控制超时。 通过回调函数注册机制,可以灵活地为不同的 URL 路由注册处理函数。 1. 项目背景 1.1 项目简介 本项目是一个基于…

【华为OD-E卷 - 求字符串中所有整数的最小和 100分(python、java、c++、js、c)】

【华为OD-E卷 - 求字符串中所有整数的最小和 100分(python、java、c、js、c)】 题目 输入字符串s,输出s中包含所有整数的最小和。 说明: 字符串s,只包含 a-z A-Z 合法的整数包括 1)正整数:一…

深入浅出Java Web开放平台:从API设计到安全保障的全方位探索

随着互联网的快速发展,越来越多的企业开始构建开放平台,特别是在Java Web开发中,如何实现高效的开放平台接口,保障系统的安全性,并且提升开发者的体验,已经成为了很多开发者关注的热点话题。本文将深入探讨…

macbook使用 pip 安装 pyicu 报错

1、问题分析 当使用ragflow等开源工具进行二次开发时,在安装基础项目依赖,需要使用到很多系统中的基础库,时常会报错,今天遇到的问题是 pyicu 包安装时报错。 基本问题分析,安装 pyicu 时,需要使用系统中…

centos 搭建nginx+配置域名+windows访问

准备工作:一个完整的centos环境,nginx安装包(可以从官网下载)nginx: download 一:centos可能有精简版,部分环境没有相关依赖包, 需要检查以下项: 1.gcc检查:gcc -v(回车后应当有版…

OpenCV基于均值漂移算法(pyrMeanShiftFiltering)的水彩画特效

1、均值漂移算法原理 pyrMeanShiftFiltering算法结合了均值迁移(Mean Shift)算法和图像金字塔(Image Pyramid)的概念,用于图像分割和平滑处理。以下是该算法的详细原理: 1.1 、均值迁移(Mean …

React面试常见题目

在前端面试中,React 是一个非常重要的知识点,面试题目往往涵盖基础概念和高级应用。以下是常见的面试题目以及进阶题目的整理和详解。 一、基础题目 1. React 的核心概念 问:React 的生命周期有哪些?如何在函数组件中使用&#…