GitLab服务器搭建

news2025/1/7 6:18:29

文章目录

    • 前述
    • 方式一:非容器安装
      • 搭建GitLab服务器
      • 查看gitlab用户的初始密码:
      • 修改初始密码
      • gitlab配置文件
      • 修改服务的端口号
      • 启动并访问服务
    • 方式二:容器下安装基于Docker
      • 安装Docker
      • 在容器中安装gitlab服务
      • 宿主机配置修改
      • 容器配置修改
      • 启动并访问服务

前述

一般的公司都不希望将自己的代码托管到公共的代码托管网站,如:github,gitee等,而是自己搭建一个代码托管的服务器来管理代码,所以我们就看看怎么搭建一个自己的代码托管服务器吧

  • 官方网站:https://about.gitlab.com/
  • 官方安装文档:https://gitlab.cn/install?version=ce(你也可以参考这个官方文档搭建)
    在这里插入图片描述

本人使用的是centos7操作系统,使用xshell连接上你的服务器就可以开始安装了,注意,服务器内存大小要在6G-8G左右,因为gitlab服务比较大,服务器内存太小可能会启动失败。

方式一:非容器安装

搭建GitLab服务器

首先使用xshell连接上你的服务器

使用free -m 命令可以查看虚拟机的内存大小,单位是MB(看看内存大小是否够用1GB=1024MB):
在这里插入图片描述

使用su root命令切换到root权限:
在这里插入图片描述

使用命令安装perl包: yum install -y curl policycoreutils-python openssh-server perl

使用命令打开sshd:systemctl enable sshd

使用命令启动sshd:systemctl start sshd

配置镜像源:curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
在这里插入图片描述
开始安装:EXTERNAL_URL="http://192.168.1.103:8081" yum install -y gitlab-jh

  • http://192.168.0.103:该地址为服务器的地址或者域名,如果不知道可以使用ifconfig命令查询,端口号为你的gitlab服务端口号
  • 如果配置错了,也没关系,这个我们后面还可以通过gitlab的配置文件修改
  • 安装完成后会随机生成一个密码(初始密码只有二十四小时的有效期)存储在/etc/gitlab/initial_root_password文件中,安装成功后建议立即修改初始密码,使用修改后的密码和用户名root登录。

注意:配置gitlab服务的端口号的时候要先检查该端口号是否被占用,以及服务器是否开放此端口号,如果没开放该端口号,外面是访问不了你的gitlab服务的。

查看开放的端口号:firewall-cmd --list-all

设置开放端口号:sudo firewall-cmd --add-port=8081/tcp --permanent

重启防火墙(设置完一定要重启防火墙):firewall-cmd --reload

现在外部就可以访问8081端口了

查看gitlab用户的初始密码:

账号为:root

cat /etc/gitlab/initial_root_password|grep password

可以使用账户和密码登录,然后再页面修改初始密码,也可以使用下面的命令行修改密码。

修改初始密码

我们使用命令行的方式:

进入gitlab控制台:
gitlab-rails console

切换用户,看到root用户又返回值(返回nil代表空),证明该用户存在:
user = User.where(username: 'admin').first
user = User.where(username: 'root').first

修改root用户的密码为123456:
user.password = "123456ldd"

保存密码,返回true表示修改成功:
user.save! 

退出控制台:
ctrl+z保存并退出控制台

然后就可以使用root+123456ldd登录了

gitlab配置文件

gitlab服务的配置文件:/etc/gitlab/gitlab.rb

修改服务的端口号

修改gitlab服务端口号:vim /etc/gitlab/gitlab.rb
在这里插入图片描述

按 i 开始编辑
编辑完成,按esc退出编辑
按冒号,输入wq保存退出

使用命令进行更新配置:gitlab-ctl reconfigure

注: 这个位置也可以查看配置gitlab服务的ip和端口号:/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
在这里插入图片描述

启动并访问服务

使用命令查看linux中正在运行的服务:netstat -lntp

如果gitlab服务没有启动我们可以通过下面的命令启动或者关闭:

  • 停止gitlab服务:gitlab-ctl stop
  • 启动gitlab服务:gitlab-ctl start

服务启动成功后即可通过http://192.168.1.103:8081访问

在这里插入图片描述

方式二:容器下安装基于Docker

官网教程:https://docs.gitlab.cn/jh/install/docker.html

安装Docker

更新yum源:yum install

安装依赖:yum install -y yum-utils device-mapper-persistent-data 1vm2

添加镜像源:

  • 国外镜像源:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 阿里镜像源:yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/decker-ce.repo

查看源中可用的docker版本:yum list docker-ce --showduplicates|sort -r

安装docker:

  • 安装最新版本(默认):yum install docker-ce
  • 安装指定版本:yum install docker-ce-20.10.9-3.el7

配置开机启动:

  • 启动docker:systemctl start docker
  • 配置开机启动:systemctl enable docker
  • 查看docker版本:docker version

在容器中安装gitlab服务

在设置其他所有内容之前,请配置一个新的环境变量 $GITLAB_HOME,指向配置、日志和数据文件所在的目录, 确保该目录存在并且已授予适当的权限。

  • docker中的gitlab文件会映射到本机的/srv/gitlab目录
export GITLAB_HOME=/srv/gitlab
本地位置容器位置使用
$GITLAB_HOME/data/var/opt/gitlab用于存储应用程序数据。
$GITLAB_HOME/logs/var/log/gitlab用于存储日志。
$GITLAB_HOME/config/etc/gitlab用于存储极狐GitLab 配置文件。

添加gitlab容器:

sudo docker run --detach \
  --hostname 192.168.1.103 \
  --publish 8443:443 --publish 8082:8082 --publish 222:22 \
  --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 \
  registry.gitlab.cn/omnibus/gitlab-jh:latest
  • hostname:你的服务器的ip地址或者域名
  • publish:将容器内部端口向外映射
    • 8443:443:将容器内443端口映射至宿主机8443端口
    • 8082:8082:将容器内8082端口映射至宿主机8082端口,这是访问gitlab的端口(我们等下配置)
    • 222:22:将容器内22端口映射至宿主机222端口,这是访问ssh的端口
  • name:命名容器名称
  • volume:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
  • restart:系统重启后,容器将自动restart

宿主机配置修改

宿主机端口号开放:8443端口,8082端口,222端口

查看开放的端口号
firewall-cmd --list-all

开放指定端口(因为22一般被sshd服务占据,所以这里用222端口)
sudo firewall-cmd --add-port=8443/tcp --permanent
sudo firewall-cmd --add-port=8082/tcp --permanent
sudo firewall-cmd --add-port=222/tcp --permanent

重启防火墙(设置完一定要重启防火墙):
firewall-cmd --reload

现在外部就可以访问这些端口了

容器配置修改

gitlab.rb(宿主机路径:/srv/gitlab/config/gitlab.rb

配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.1.103:8082'

配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.199.231'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是运行时22端口映射的222端口

启动并访问服务

启动gitlab容器:docker start gitlab

查看已存在的容器:docker ps -a

进入容器(一定要进入容器):docker exec-it gitlab /bin/bash

查看初始密码:cat /etc/gitlab/initial_root_password|grep password

修改初始密码:参考上面的方法

访问:http://192.168.1.103:8082

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/562026.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot如何优雅的实现参数验证

唠嗑部分 在我们设计接口时,参数验证是必不可少的一个环节,严格的参数验证能够保证数据的严谨,那么在SpringBoot项目中,你是如何验证参数的呢? 首先我们来描述一下需求 用户类,有用户名、用户头像、邮件…

基于html+css的图展示88

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

2000万的行数在2023年仍然是 MySQL 表的有效软限制吗?

谣言 互联网上有传言说我们应该避免在单个 MySQL 表中有超过 2000 万行。否则,表的性能会下降,当它超过软限制时,你会发现 SQL 查询比平时慢得多。这些判断是在多年前使用HDD硬盘存储时做出的。我想知道在2023年对于基于SSD的MySQL数据库来说…

【大数据学习篇10】Spark项目实战~网站转化率统计

学习目标/Target 掌握网站转化率统计实现思路 了解如何生成用户浏览网页数据 掌握如何创建Spark连接并读取数据集 掌握利用Spark SQL统计每个页面访问次数 掌握利用Spark SQL获取每个用户浏览网页的顺序 掌握利用Spark SQL合并同一用户浏览的网页 掌握利用Spark SQL统计每…

安卓基础巩固(三)多线程、数据存储、文件IO、SQLite

文章目录 多线程Handler相关概念UI线程/主线程MessageMessage QueueLooperHandler 使用步骤Handler.sendMessage()Handler.post() Handler 机制工作原理Handler内存泄露前置知识案例分析解决方案一:静态内部类弱引用解…

数据结构学习记录——图应用实例-六度空间(题目描述、算法思路、伪代码及解读、图解)

目录 题目描述 算法思路 伪代码 总体算法 BFS算法 伪代码解读 BFS算法 图解 题目描述 六度空间理论的核心观点是,人类社交网络中的任何两个人之间,平均只需要通过不超过六个中间人(也就是六个社交关系)就可以建立联系。换…

多台plc之间如何快速实现以太网无线连接?

常规来说,多台plc要实现以太网无线连接,首先要先确定以太网线必须正确连接,并建立物理连接。然后需要在PLC端设置好IP地址,以使不同PLC以相同协议可以实现通信交流。最后是建立PLC端数据采集及交换系统,要求在PLC端设置…

《封号码罗》关于js逆向猿人学第二题cookies里面m值的获取[纯扣算法](二十六)

这一题有点儿误打误撞的感觉。 本题使用了抓包工具Fiddler,m值在cookie里面,而且这个cookie是本地生成的 抓包发现有两次请求,第一次返回了一堆JS,而且cookie里面没有m值,第二次请求就带上了m值,所以m应该…

信号完整性分析基础知识之传输线和反射(七):带负载传输线、感性不连续引起的反射

带负载传输线 如果在传输线上有一个小的容性负载,信号会出现失真,上升时间也会降低。每个分立电容都会降低信号在其附近看到的阻抗。如果传输线上分布有多个容性负载(例如一个总线上每隔1.2inch有一个2pF的连接器残桩,或者一个内…

单模光纤一维模场分布的MATLAB仿真

根据已知的单模光纤电场z分量分布,可以用MATLAB展示一维的模场分布 具体来说,通过数值计算解出给定光纤(n_1,n_2,a)参数时对应的V参量 通过特征方程解出V对应的W和U 通过这三个参数带入到光场的表达式中…

07. 算法之一致性哈希算法介绍

前言 哈希算法在程序开发中的很多地方都能看到他的身影,但是哈希有他的局限性,比如如果两个key哈希到同一个位置的时候,此时就不好处理。本节我们介绍一下常规处理方式。 1. 什么是哈希算法 哈希算法将任意长度的二进制值映射为较短的固定…

界面控件DevExtreme使用指南 - 如何自定义上下文菜单和工具栏

DevExtreme File Manager(文件管理器)小部件现在支持自定义内置的工具栏和上下文菜单,用户可以使用标准和定义的命令项填充项目集合,并配置设置来更改其外观和操作。 DevExtreme拥有高性能的HTML5 / JavaScript小部件集合&#x…

基于Keras-YOLO实现目标检测

Keras-YOLO 3项目使用Python语言实现了YOLO v3网络模型,并且可以导入Darknet网络预先训练好的权重文件信息直接使用网络进行目标识别。 1. 下载Keras-YOLO 3项目 执行如下命令下载Keras-YOLO 3项目代码: git clone https://github.com/qqwweee/keras-…

直播和短视频美颜sdk的开发流程、代码分析

目前,美颜技术是提高视频质量的重要手段之一,特别是短视频和直播两个行业。本文将介绍其开发流程和代码分析。 一、美颜SDK的开发流程 1.需求分析 首先我们需要明确的一点就是“需求”,例如:美颜效果、美颜程度、性能要求等。同…

解决找不到微信支付V3版本公钥问题

参考微信文档链接为签名验证-接口规则 | 微信支付商户平台文档中心 写的内容特别不明显,往下面看会找到 下载openssl工具使用命令从私钥证书中导出即可。

地图在线编辑平台,无基础轻松实现私域地图

位构云平台让用户轻松构建诸如空间信息管理、建筑信息管理及三维空间数据可视化、导航等类型应用的多平台、综合型地图引擎,基于OpenGLES/WebGL三维可视化技术体系的自主研发图形引擎,可以让开发者轻松构建运行在 Web、Android、iOS 等多平台的应用程序。…

安捷伦DSO80404B(Agilent)dso80404b租售回收 数字示波器

DSO80404B 是 Agilent 的 4 GHz、4 通道数字示波器。测量电子电路或组件中随时间变化的电压或电流信号,以显示振幅、频率和上升时间等。应用包括故障排除、生产测试和设计。 附加功能: 4 GHz 带宽,可升级至 13 GHz 4个模拟通道 高达 40 G…

day10 前端技术-HTMLCSS

HTML 含义:超文本标记语言,静态网页,用于在浏览器显示数据 双标签:<> </>,开始标签和结束标签同时出现 单标签: 属性名:属性后面的值都加双引号 常用的HTML标签 :文档的根标签 :HTML页面的头部标签 “”:页面标题 “”:页面主体部分 “ “ “ 到 ”:标题…

『树莓派云台机器人』02. 电脑连接树莓派 配置开发环境

目录 1. 下载ssh交互工具 Xshell 与XFTP&#xff08;有过相关使用经历的朋友可以跳过这一节内容&#xff09;2. 下载VNC远程控制工具软件3. 连接过程4. Xshell 命令工具5. XFTP 文件传送工具6. 关于联网总结 欢迎关注 『树莓派云台机器人』 博客&#xff0c;持续更新中 欢迎关注…

PoseiSwap IDO在Bounce上启动在即,如何参与?

目前&#xff0c;Nautilus Chain 生态基本完成测试&#xff0c;并即将在不久上线主网。PoseiSwap 作为 Nautilus Chain 上的首个 DEX&#xff0c;也即将面向市场并上线正式版本。我们看到&#xff0c; PoseiSwap 也正式发布了新的市场进程&#xff0c;基于其治理代币 POSE 的 I…