• 热门搜索 热门搜索
菜单

您现在的位置是:博客 > 文章详情文章详情

GitLab 私有化部署

原创
时间2024/06/17 09:16:55 发布 预览数量134
分类: 其它 标签: Git gitlab 安装

一、GitLab 概述

git作为目前最流行的代码管理工具,已经成为了程序员必备的技能。虽然目前有 github(对国人不太友好)gitee 两个比较大的代码托管平台。但是出于各种原因,搭建自己的私有代码平台也成了一部分开发人员的选择。针对这种需求,这里为大家介绍的是其中的佼佼者gitlab,也是我们公司内部正在使用的一个代码管理平台。

GitLab是一个基于Git的开源代码管理平台,它使用Ruby on Rails构建,并通过Web服务提供界面。GitLab主要用于管理软件开发过程中的代码和文档。它支持群组(group)和工程项目(project)两个维度的管理。一个群组可以包含多个工程项目,每个工程项目又可以包含多个分支。这些分支是相互独立的,并可以进行合并操作。总的来说,GitLab是一个功能强大的工具,可以帮助团队更有效地协作和管理代码。

二、GitLab 官网地址

GitLab官网地址

三、GitLab 安装(Docker)

①、首先,需要为gitlab的数据创建一个目录,用来存储gitlab在运行过程中产生的数据。

mkdir -p /data/gitlab

②、将数据库目录设置为环境变量

export GITLAB_HOME=/data/gitlab

③、使用 Docker 引擎安装 GitLab,(注:括号内的域名或 Ip 需要自行修改)

docker run -d \
  **--hostname 【域名或IP】 \**
  **-p 443:443 -p 80:80 -p 2222:22 \ # 443、80:http/https;22:用于Git仓库的克隆和推送操作。**
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  gitlab/gitlab-ce:latest

第一次运行镜像会很慢, 因为需要初始化很多数据,每个人的服务器配置不一样, 运行的时间也不太一样, 我这里使用的是 (腾讯云 4核4G 的配置),运行了大概四五分钟的样子。

我们可以使用命令来监听一下运行情况:

  • 查看运行日志:docker logs -f gitlab
  • 查看是否运行完毕:watch docker ps

当看到下图中的 healthy 时,说明gitlab已经成功运行了。

GitLab 私有化部署

此时登录地址就可以访问登录页面了。

四、GitLab 安装(Linux)

1、安装前准备

  • CentOS
  • Ubuntu、Debian
# CentOS 安装和配置所需的依赖
sudo yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
# Ubuntu、Debian 安装和配置所需的依赖
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl

2、下载GitLab安装包

执行以下命令配置极狐GitLab 软件源镜像。

curl -fsSL https://get.gitlab.cn | /bin/bash

3、设置环境变量

在安装GitLab之前,需要通过设置 EXTERNAL_URL 环境变量来指定极狐GitLab 实例的 URL。

# EXTERNAL_URL 需要根据需求修改
sudo EXTERNAL_URL="https://www.converts.cn"

注:如果想使用https的方式,请转移到官方文档的介绍:

为 Linux 软件包安装配置 SSL

4、开始安装GitLab

  • CentOS
  • Ubuntu、Debian
# CentOS 安装
yum install -y gitlab-jh
# Ubuntu、Debian 安装
apt-get install gitlab-jh

5、升级GitLab

  • Ubuntu/Debian
  • RHEL/CentOS 7
# Ubuntu/Debian 升级
sudo apt update && sudo apt install gitlab-jh
# RHEL/CentOS 7 升级
sudo yum install gitlab-jh

error: 建议在安装较新的GitLab 版本之前备份GitLab 数据库,以免造成不必要的损失。

五、登录GitLab

使用第二步 EXTERNAL_URL 中配置的地址来访问安装成功的极狐GitLab 实例。用户名默认为 root 。如果在安装过程中指定了初始密码,则用初始密码登录,如果未指定密码,则系统会随机生成一个密码并存储在 /etc/gitlab/initial_root_password 文件中, 查看随机密码并使用 root 用户名登录。

# 1、进入gitlab容器
docker exec -it gitlab bash

# 2、查询密码
root@192:/# cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

**Password: 2q9swMeqy7GaS09PYloeNodOqRClj/f1ZkS+pBx0rkk=**

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

GitLab 私有化部署

warning: 注意:出于安全原因,24 小时后,/etc/gitlab/initial_root_password 会被第一次 gitlab-ctl reconfigure 自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码。

六、GitLab 配置

1、中文设置

由于默认都是显示的英文,对于很多人来说, 太难了~~~ , 不过还好, gitlab 支持多语言,那来看看如何设置成中文显示。

GitLab 私有化部署

然后刷新页面就生效了。

2、自定义登录页样式

经过前面几步的操作, gitlab 已经部署成功。但是发现登录页面并不是自己喜欢的, 没关系, gitlab 提供了自定义的配置, 可以修改登录页, 也可以修改默认的logo,以便用户自定义需求。
GitLab 私有化部署

GitLab 私有化部署

GitLab 私有化部署

3、邮箱配置

gitlab 支持发送邮件,可以对一些更改,新增进行邮件提醒。因为 GitLab Docker 镜像没有安装 SMTP 服务器,所以需要我们进行配置才行。我这里使用的是网易 163的邮箱。 如果有其他邮箱(QQ、Google 、yhoo等等)可以参考官方链接:SMTP settings

3.1、开通SMTP 服务

GitLab 私有化部署

GitLab 私有化部署

开启之后会有一个授权密码,请记住授权密码, 后面会用到。

GitLab 私有化部署

3.2、配置 gitlab.rb 配置文件

进入容器内部,我们找到找到 vi /etc/gitlab/gitlab.rb 文件进行编辑,编辑成下述代码,其中有些参数需要修改, 根据要求修改即可。

 gitlab_rails['smtp_enable'] = true
 gitlab_rails['smtp_address'] = "smtp.163.com"
 gitlab_rails['smtp_port'] = 25
 gitlab_rails['smtp_user_name'] = "163邮箱地址"
 gitlab_rails['smtp_password'] = "上面的秘钥"
 gitlab_rails['smtp_domain'] = "163.com"
 gitlab_rails['smtp_authentication'] = :login
 gitlab_rails['smtp_enable_starttls_auto'] = true
 gitlab_rails['gitlab_email_from'] = "163邮箱地址"
 user['git_user_email'] = "163邮箱地址"

GitLab 私有化部署

然后重启即可

# 重启
gitlab-ctl reconfigure
gitlab-ctl restart

版权声明:本文为Converts的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://www.converts.cn/article/2218437.html

暂无评论

暂无评论

目录

推荐阅读

  • 移除Linux系统启动时的等待时间

    一、前言 VMware 虚拟机中安装了很多Linux 系统,每次启动的时候, 都卡在系统选择的界面上,除非手动选择, 否则要等很久才会进入系统,如下图所示: ![移除Linux系统启动时的等待时间](/ArticleFile/2024-06-24/e3ab02212cc946bd9c23159895177fb3.png '移除Linux系统启动时的等待时间') 二、关闭系统等待的事件 我们

  • GitLab 私有化部署

    一、GitLab 概述 git作为目前最流行的代码管理工具,已经成为了程序员必备的技能。虽然目前有 github(对国人不太友好) 、gitee 两个比较大的代码托管平台。但是出于各种原因,搭建自己的私有代码平台也成了一部分开发人员的选择。针对这种需求,这里为大家介绍的是其中的佼佼者gitlab,也是我们公司内部正在使用的一个代码管理平台。 GitLab是一个基于Git的开源代码管理平台,它

  • 云服务器购买按量付费实例,并搭建私有网络图解

    一、前言 最近在自学 k8s 集群化部署, 奈何云服务器包年包月太贵了, 学习成本飙升。好在各大云服务商支持按量计费 , 接下来就带大家一起过一下购买流程,并且使用私有网络。 二、私有网络 在购买云服务器之前,先了解下什么是私有网络。官网给出的解释是:私有网络(Virtual Private Cloud,VPC)是一块在云服务器上自定义的逻辑隔离网络空间,可以使云服务器, 云数据库资源构建逻

  • Docker 部署FastTunnel,实现内网穿透

    一、前言 最近在学习搭建Elasticsearch集群,但是发现云服务(2核4G)资源根本就不够用,部署上去就直接宕机了。想着服务器资源太贵, 家里刚好有一台64G内存的闲置电脑。不如做一个内网穿透,可以远程访问。工作学习两不误。其实目前市面上已经有很多穿透工具了,比如向日葵~~ ,但是奈何带宽太小了,免费的才1M~~~ 二、什么是 FastTunnel FastTunnel 是用.net

  • IP地址和子网掩码的关系

    一、概述 IP地址(Internet Protocol Address)和子网掩码(Subnet Mask)是计算机网络中两个核心的概念,它们共同工作以确保数据能够正确地在复杂的网络环境中传输到目标设备。 二、IP地址 `IP地址`是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。它是一个32位的二进制数,但是在习惯上,我们

  • 修改Docker默认的存储驱动程序目录

    一、前言 今天使用jenkins对程序进行更新的时候,发现更新失败。经排查是因为系统磁盘满了,然而通过堡垒机看了下,系统空间还有很多,于是看了下系统分区: ![修改Docker默认的存储驱动程序目录](/ArticleFile/2024-06-06/444ede8a1b1b42058db18690fa995952.png '修改Docker默认的存储驱动程序目录') ![修改Docker默认

  • Windows 安装git的详细安装步骤 ,以及TortoiseGit 图形化工具

    一、前言 `Git` 是一个开源的分布式版本控制系统,用于有效、高速地处理从很小到非常大的项目版本管理。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不需要服务器端软件支持。 二、安装Git 1、Git 下载地址 [Git 下载地址](https://git-scm.com/downloads "Git 下载地址") ![Windows

  • 免费的 GIF 录屏工具下载

    一、前言 在写博客或者文档的时候,经常需要附上一些gif动图,可以让快速展示操作流程。下面`小C`就介绍几款我经常用到的几款免费的gif工具。 二、免费的Gif工具 1、GifCam GifCam是一款免费绿色软件,它能够录制屏幕上的动态内容,并将其保存为GIF动画图像。用户可以调整录制区域、帧速率等参数,以满足不同的录制需求。除了连续录制外,GifCam还支持单帧录制功能。用户可以手

  • 对比MySQL不同版本下表结构和数据存储的差异

    一、前言 在开始之前, 我们需要先了解一下 MySQL 的存储引擎有哪些。 `MySQL`常用的存储引擎有 InnoDB 和 MyISAM,而且两者都有各自的特点,适用于不同的场景。下面是对这两种存储引擎的简要对比: - InnoDB存储引擎 - 支持事务处理 - 支持行级锁 - 支持外键约束 - 可以根据事务日志实现数据恢复 - MyISAM存储引擎 - MyISAM 的读取性能

  • Linux系统定时任务 -- crontab命令

    一、前言 有时候需要在 Linux 系统中定时执行一些任务,我们就需要使用 `crontab` 命令创建定时任务。crontab 是“cron table”的缩写,其功能是管理定时计划任务。在Linux系统中的crond是一个定时计划任务服务,用户只要能够按照正确的格式(分、时、日、月、星期、命令)写入到配置文件中,那么就会按照预定的周期时间自动地执行下去,而crontab命令则是用于配置的工具

加载中