如何搭建自己的gitlab服务器

这里使用Termus工具连接服务器,然后根据步骤走即可!

安装

1.配置yum源安装gitlab

sh 复制代码
vim /etc/yum.repos.d/gitlab-ce.repo

修改或新增下面配置并保存

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

2.更新本地缓存

sh 复制代码
sudo yum makecache

然后执行安装命令

sh 复制代码
sudo yum install -y gitlab-ce  #自动安装最新版本
# 若需安装指定版本,则添加版本号即可,即yum install gitlab-ce-x.x.x

3.修改配置

sh 复制代码
vim /etc/gitlab/gitlab.rb
# 修改IP和端口,将external_url的值修改即可
# 格式:external_url 'http://ip:端口'
external_url 'https://10.0.21.125:443' # 这里使用https需要配置ssl证书

4.启动gitlab服务

sh 复制代码
sudo gitlab-ctl start

5.防火墙开启端口

sh 复制代码
# 开放上面配置的external_url中的 443端口 
firewall-cmd --zone=public --add-port=443/tcp --permanent
# 重启防火墙
firewall-cmd --reload

gitlab常用的一些命令

sh 复制代码
gitlab-ctl help  # 命令帮助
gitlab-ctl reconfigure # 重新配置
gitlab-ctl show-config # 显示配置
gitlab-ctl uninstall # 卸载
gitlab-ctl kill # 杀服务
gitlab-ctl restart # 重启服务
gitlab-ctl service-list # 服务清单
gitlab-ctl start # 启动服务
gitlab-ctl status # 查看状态
gitlab-ctl stop # 停止服务
gitlab-ctl tail # 查看所有启动服务的服务日志

如何修改默认储存目录

1.停止gitlab服务

sh 复制代码
gitlab-ctl stop 

2.新建新的储存目录

sh 复制代码
# gitlab默认的存储目录是 /var/opt/gitlab/git-data/
mkdir -p /home/data/gitlab-data

3.修改配置文件(找到 git_data_dirs 参数对应的配置)

sh 复制代码
vim /etc/gitlab/gitlab.rb
# 修改git_data_dirs的path值
git_data_dirs({
"default" => {
"path" => "/home/data/git-data"
}
})

4.迁移代码库

sh 复制代码
 rsync -av /var/opt/gitlab/git-data/repositories /home/data/gitlab-data/

5.重启配置

sh 复制代码
sudo gitlab-ctl reconfigure

6.启动gitlab

sh 复制代码
sudo gitlab-ctl start

管理员登录

在初始化配置时,已经有提示给我们密码,如果没有记住的话可以执行下面命令查看初始密码

sh 复制代码
vi /etc/gitlab/initial_root_password

首次登录通过"Edit Profile>Password"修改密码

公网IP启用https

1.生成ssl证书和私钥

sh 复制代码
mkdir /etc/gitlab/ssl

chmod 700 /etc/gitlab/ssl/ -R

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/gitlab/ssl/server.key -out /etc/gitlab/ssl/server.crt

参数说明:

  • openssl:这是用于创建和管理OpenSSL证书,密钥和其他文件的基本命令行工具。
  • req -x509:这指定我们要使用X.509证书签名请求(CSR)管理。"X.509"是SSL和TLS坚持用于密钥和证书管理的公钥基础结构标准。
  • -nodes:这告诉OpenSSL跳过用密码保护我们的证书的选项。当服务器启动时,我们需要Apache能够读取文件,而无需用户干预。密码可以防止这种情况发生,因为每次重新启动后我们都必须输入密码。
  • 第365天:此选项设置证书被视为有效的时间长度。我们在这里定了一年。
  • -newkey rsa:2048:这指定我们要同时生成一个新的证书和一个新的密钥。我们没有在上一步创建签名证书所需的密钥,所以我们需要与证书一起创建证书。该rsa:2048部分告诉它做一个2048位长的RSA密钥。
  • -keyout:这一行告诉OpenSSL在哪里放置我们正在创建的私有密钥文件。
  • -out:这告诉OpenSSL在哪里放置我们正在创建的证书。

2.修改配置文件:vim /etc/gitlab/gitlab.rb

sh 复制代码
external_url 'https://10.0.21.125:443'    #启用https,默认是http

nginx['enable'] = true
nginx['redirect_http_to_https'] = true    #http重定向到https

nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"   #ssl证书路径
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"  #ssl秘钥路径

修改完配置文件需要重启配置

shell 复制代码
gitlab-ctl reconfigure
gitlab-crl restart
相关推荐
。puppy11 分钟前
HCIP--3实验- 链路聚合,VLAN间通讯,Super VLAN,MSTP,VRRPip配置,OSPF(静态路由,环回,缺省,空接口),NAT
运维·服务器
颇有几分姿色20 分钟前
深入理解 Linux 内存管理:free 命令详解
linux·运维·服务器
光芒再现dev38 分钟前
已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
运维·python·gpt·语言模型·自然语言处理
AndyFrank1 小时前
mac crontab 不能使用问题简记
linux·运维·macos
EricWang13581 小时前
[OS] 项目三-2-proc.c: exit(int status)
服务器·c语言·前端
成都古河云2 小时前
智慧场馆:安全、节能与智能化管理的未来
大数据·运维·人工智能·安全·智慧城市
算法与编程之美2 小时前
文件的写入与读取
linux·运维·服务器
Amelio_Ming2 小时前
Permissions 0755 for ‘/etc/ssh/ssh_host_rsa_key‘ are too open.问题解决
linux·运维·ssh
心灵彼岸-诗和远方2 小时前
Devops业务价值流:软件研发最佳实践
运维·产品经理·devops
JuiceFS3 小时前
好未来:多云环境下基于 JuiceFS 建设低运维模型仓库
运维·云原生