华为云云耀云服务器L实例评测 | 云服务器搭建自己的gitlab代码仓库手把手教学

news2024/12/24 20:58:31

📋 前言

  • 🖱 博客主页:在下马农的碎碎念
  • 🤗 欢迎关注🔎点赞👍收藏⭐️留言📝
  • ✍ 本文由在下马农原创,首发于CSDN
  • 📆 首发时间:2023/09/26
  • 📅 最近更新时间:2023/09/26
  • 🤵 此马非凡马,房星本是星。向前敲瘦骨,犹自带铜声。
  • 📇 系列文章目录: 无
  • 🙏作者水平有限,如发现错误,请留言轰炸哦!万分感谢!

世界于你而言,毫无意义和目的,却又充满随心所欲的幻想,但又有谁知,也许就在这闷热令人疲倦的正午,那个陌生人,提着满篮奇妙的货物,路过你的门前,他响亮地叫卖着,你就会从朦胧的梦中惊醒,走出房门,迎接命运的安排。
——泰戈尔《爱者之贻》

在这里插入图片描述

一、背景

1.1 gitlab简介

GitLab是一个基于Web的Git仓库管理工具,它提供了一整套用于代码版本控制、代码托管、持续集成、项目管理和协作的功能。

GitLab最初于2011年由Dmitriy Zaporozhets和Valery Sizov创建,是一个开源项目。它允许开发团队在一个中心化的位置管理代码仓库,并提供了一系列工具和功能来帮助团队协作开发软件项目。

以下是GitLab的一些主要特点:

  1. 代码托管:GitLab提供了强大的代码托管功能,支持Git版本控制系统。你可以在GitLab上创建自己的代码仓库,进行代码的提交、分支管理和合并请求等操作。
  2. CI/CD:GitLab集成了持续集成和持续交付(CI/CD)功能,使开发团队能够自动构建、测试和部署他们的应用程序。通过配置CI/CD管道,你可以定义各种构建、测试和部署任务,并与代码仓库进行集成。这样,每当有新的代码提交时,系统将自动执行这些任务来确保代码的质量和稳定性。
  3. 项目管理:GitLab提供了一套项目管理工具,包括问题跟踪、任务列表、里程碑、讨论和代码审查等功能。团队成员可以使用这些工具来协作开发、分配任务、讨论问题和审核代码。
  4. 集成与扩展性:GitLab支持与其他工具和服务的集成,如JIRA、Slack、Jenkins等。它还提供了API和插件系统,使开发者可以根据自己的需求进行扩展和定制。
  5. 自托管和SaaS:GitLab提供了两种部署方式,你可以选择在自己的服务器上自托管GitLab,或者使用GitLab提供的托管服务(GitLab.com)。

总的来说,GitLab是一个功能丰富的代码托管和项目管理平台,它的目标是帮助开发团队更高效地协作和交付软件。无论是小型团队还是大型企业,GitLab都提供了一套完整的工具和功能来支持软件开发的整个生命周期。

搭建一个自己专属的gitlab,将自己的代码库全部上传之后,就可以随时随地访问自己的代码。并且gitlab并非只能作为代码仓库,常见格式的文件都能上传并支持在线预览。

1.2 华为云耀云服务器L实例

根据官网介绍,云耀云服务器L实例是新一代开箱即用、面向中小企业和开发者打造的全新轻量应用云服务器。云耀云服务器L实例提供丰富严选的应用镜像,实现应用一键部署,助力客户便捷高效的在云端构建电商网站、Web应用、小程序、学习环境、各类开发测试等。
有非常多的优势,比如不卡顿,上手简单等等等。
对我们这种小白来讲,这些可以适当了解一下,我们只需要知道它是一台云服务器就足够了。

OK,了解了这两个主角之后,我们直接开干。

二、搭建GitLab

2.1 安装前准备

2.1.1 购买云服务器

这个不再展开,如果你还没有服务器,先去买服务器吧骚年!!!


注意:本文使用的云服务器配置如下:

  • vCPU: 2核
  • 内存: 2GB
  • Linux操作系统:以ubuntu22.04为例

2.2.2 配置服务器安全组规则

  1. 在华为云控制台找到自己购买的服务器,依次点击:更多=>网络设置=>安全组规则配置
    在这里插入图片描述
  2. 之后在弹出的窗口中点击配置规则,进入安全组规则配置界面。
    在这里插入图片描述
  3. 开放80端口
    gitlab需要用到80端口,为了简便操作,我们直接使用控制台提供的一键放通常用端口功能,如下图所示:
    依次点击:入方向规则=>一键放通常用端口=>确认即可。然后出方向一样。
    在这里插入图片描述

2.2 登录实例并创建swap分区

2.2.1 登录我们的服务器实例

可以选择控制台自己的远程登录,也可以自行使用SSH工具进行远程登录。
注意:默认用户名为root,如果不知道登录密码,可以先关机然后进行重置密码后再进行登录。

2.2.2 服务器添加swap分区

从gitlab官网了解到,gitlab安装对于服务器的最低要求为:

  • 存储:安装gitlab需要2.5G空间
  • CPU : 4核CPU(支持500用户)
  • 内存: 4GB RAM 是必需的最小内存,支持多达 500 名用户

显然,博主购买的这台服务器配置达不到要求,于是我们需要添加swap分区,它是针对内存不足情况的极其重要的最后手段。

添加swap分区步骤:

  1. 检查系统是否已经存在swap分区

    sudo swapon --show
    

    如果没有任何输出,则证明没有swap分区,如下图所示:
    在这里插入图片描述

  2. 创建一个用于swap分区的文件

    sudo mkdir -v /var/cache/swap
    cd /var/cache/swap
    sudo dd if=/dev/zero of=swapfile bs=1K count=4M
    

    在这里插入图片描述

  3. 将新建的文件转换为swap文件

    sudo mkswap swapfile
    

    在这里插入图片描述

  4. 启用swap分区

    sudo swapon swapfile
    
  5. 使用swapon命令进行验证

    swapon -s
    

    正常的话会显示swap分区的信息,如下图所示:在这里插入图片描述

    如果需要禁用swap,可以使用sudo swapoff swapfile

  6. 将swap分区设置为开机自动加载

    echo "/var/cache/swap/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab
    

    在这里插入图片描述

  7. 调整swap分区的swappiness

    swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。正常情况这个值默认为60。以防万一,我们查看一下。

    a. 查看当前swap分区swappiness

    cat /proc/sys/vm/swappiness
    

    比如博主这里,这个值就为0.
    在这里插入图片描述

    如果这个值为0,需要修改为60,或者80都行。

    b. 修改swappiness的值

    sudo sysctl vm.swappiness=60
    

    在这里插入图片描述

    这种修改方式只在本次启动运行过程中有效,重启后就会变为原来的默认值,如果需要长期生效,需要在/etc/sysctl.conf文件中添加vm。swappiness = 60(如果文件末尾有此项,将其值改为60)

    sudo vim /etc/sysctl.conf
    

    在这里插入图片描述

2.3 安装GitLab

2.3.1 安装依赖

sudo apt update
sudo apt-get upgrade
sudo apt-get install curl openssh-server ca-certificates postfix

如果中途跳出需要选择的选项,直接选择默认项回车即可。

2.3.2 安装GlitLab

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh |sudo bash
sudo apt-get install gitlab-ce

在这里插入图片描述
运行之后需要等待一会。

2.2.3 安装成功

安装成功的界面如下图所示:
在这里插入图片描述
出现这个界面,我们这一步的操作就完成了

2.4 配置IP并启动gitlab

2.4.1 配置对外IP和默认端口

GitLab的配置文件位于 /etc/gitlab/gitlab.rb ,我们需要编辑此文件来修改gitlab的相关配置。在本文中使用vim编辑,如果没有安装vim,执行命令sudo apt install vim进行安装。
进入配置文件

sudo vim /etc/gitlab/gitlab.rb

修改external_url字段,其原始值为external_url 'http://gitlab.example.com'将其修改为IP+端口号的形式,例如external_url 'http://123.45.678.90:80',要将123.45.678.90替换为你自己服务器的公网IP。

2.4.2 启动GitLab

运行以下命令以启动GitLab:

  sudo gitlab-ctl stop     //--停止服务
  sudo gitlab-ctl reconfigure  //--启动服务
  sudo gitlab-ctl restart         //--重启所有gitlab组件
  sudo gitlab-ctl start           //--启动所有gitlab组件

注意:如果中途执行sudo gitlab-ctl reconfigure有卡住很长时间不动的情况,Ctrl+C退出之后重新执行上述命令。配置好之后会出现 gitlab Reconfigured! 提示。如下图所示:
在这里插入图片描述
配置成功之后接着执行上边的后两句命令。
在这里插入图片描述
执行完成之后,GitLab就已经安装配置并成功启动,这时我们在电脑的浏览器中输入刚刚GitLab配置文件中external_url的链接,就能够成功访问到GItLab的主页了。
在这里插入图片描述
管理员账户名:root
管理员账户密码:默认密码在/etc/gitlab/initial_root_password
在这里插入图片描述
如需修改默认密码,请自行搜索修改密码方式。

2.4.3 使用管理员账户登录

三、常见问题及解决方法

3.1 访问首页提示502 GitLab响应时间过长

在这里插入图片描述
使用top查看内存使用情况,如果内存剩余过少,则可能是swap分区使用率过低,物理内存不足导致,重新检查2.2中的所有步骤是否执行成功。查看swap分区swapiness的值是否为0,将其修改为60或者80。


总结:到这里,使用华为云耀云服务器L搭建GitLab代码仓库就完成了。通过本文,我们详细介绍了如何在云服务器上搭建GitLab,并为团队提供一个高效、安全的代码托管和协作平台。我们从云服务器的选择和配置开始,逐步引导您完成了GitLab的安装和设置过程。通过搭建自己的GitLab实例,您可以拥有完全的控制权,并确保您的代码在受保护的环境中得到管理和维护。

如果您在设置过程中遇到任何问题,可以联系博主寻求技术支持,觉得有用就来个三连支持一下吧!!!

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

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

相关文章

crypto:Quoted-printable

题目 解压文件后可得到提示文本 好了这个没接触过,参考别的大佬wp QP为可打印字符编码,根据加密方式任何一个8位的字节值可编码为3个字符:一个等号“”后跟随两个十六进制数字(0–9或A–F)表示该字节的数值。 利用网…

完全背包 动态规划 + 一维dp数组

动态规划:完全背包理论基础 每件商品都有无限个!!! (1)0-1背包的核心代码 解决0-1背包问题(方案二):一维dp数组(滚动数组)_呵呵哒( ̄…

CodeWhisperer,非常丝滑的AI代码神器

文章目录 什么是 Amazon CodeWhisperer?快速上手CodeWhisperer安装配置如何使用 Amazon CodeWhispererCodeWhisperer初体验:hello world Python语言快速入门向文件写入数据读取csv文件排序算法之冒泡排序设计模式之单例模式 使用CodeWhisperer快速上手Py…

这本书竟然把JAVA讲的如此透彻!漫画JAVA火爆出圈!

亲爱的粉丝们,你是否曾经为学习JAVA而苦恼?繁复的代码和复杂的逻辑常常让人感到头大。不过,今天我要为大家介绍一本神奇的书——《漫画JAVA》,它以图文并茂的方式,轻松诙谐地讲解了JAVA的方方面面。在这篇文章中&#…

基于.Net Core实现自定义皮肤WidForm窗口

前言 今天一起来实现基于.Net Core、Windows Form实现自定义窗口皮肤,并实现窗口移动功能。 素材 准备素材:边框、标题栏、关闭按钮图标。 窗体设计 1、创建Window窗体项目 2、窗体设计 拖拉4个Panel控件,分别用于:标题栏、关…

LabVIEW开发实时自动化多物镜云计算全玻片成像装置

LabVIEW开发实时自动化多物镜云计算全玻片成像装置 数字病理学领域正在迅速发展,这主要是由于计算机处理能力、数据传输速度、软件创新和云存储解决方案方面的技术进步。因此,病理科室不仅将数字成像用于图像存档等简单任务,还用于远程病理学…

无菌生产使用的纯蒸汽质量检测必要性及验证服务

纯蒸汽常被用于制药行业的无菌生产中。无菌生产所用到的物料、容器、设备等物品需要使用纯蒸汽进行湿热灭菌处理。纯蒸汽的主要检测指标,如微生物限度、电导率、TOC等应满足《中华人民共和国药典》中注射用水的质量指标规定。 当纯蒸汽用于湿热灭菌时,为…

【MySQL】开启 canal同步MySQL增量数据到ES

开启 canal同步MySQL增量数据到ES canal 是阿里知名的开源项目,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。示使用 canal 将 MySQL 增量数据同步到ES。 一、集群模式 图中 server 对应一个 canal 运行实例 ,对应一…

C++刷题 全排列问题

C刷题 全排列问题 题目描述思路讲解代码展示 题目描述 思路讲解 代码展示 #include <iostream>using namespace std;const int maxn 11;//P为当前排列&#xff0c;hashTable记录整数x是否已经在P中 int n, P[maxn], hashTable[maxn] {false};//当前处理排列的第index号…

Mysql高级——数据库设计规范(2)

8. ER模型 ER 模型中有三个要素&#xff0c;分别是实体、属性和关系。 实体&#xff0c;可以看做是数据对象&#xff0c;往往对应于现实生活中的真实存在的个体。在 ER 模型中&#xff0c;用矩形来表示。实体分为两类&#xff0c;分别是强实体和弱实体。强实体是指不依赖于其…

ElementUI动态树,数据表格以及分页的实现

目录 前言 一. ElementUI动态树 二. 数据表格和分页 三. 后端代码 service层 controller层 前言 在上一篇博客中实现了左侧菜单栏&#xff0c;在此基础上将它变为动态的&#xff0c;即动态的展示数据库的数据。还有数据表格的实现以及分页。&#xff08;纯代码分享&#…

Opengl之基础光照

现实世界的光照是极其复杂的&#xff0c;而且会受到诸多因素的影响&#xff0c;这是我们有限的计算能力所无法模拟的。因此OpenGL的光照使用的是简化的模型&#xff0c;对现实的情况进行近似&#xff0c;这样处理起来会更容易一些&#xff0c;而且看起来也差不多一样。这些光照…

【DenseNet模型】

【DenseNet模型】 1 DenseNet结构2 DenseNet特征图保持一致方法3 模型预览方法 1 DenseNet结构 参考链接&#xff1a;https://arxiv.org/pdf/1608.06993.pdf DenseNet通过密集连接&#xff0c;可以缓解梯度消失问题&#xff0c;加强特征传播&#xff0c;鼓励特征复用&#xff0…

逻辑像素与物理像素引发学习型探索

文章目录 目的关于像素从像素到分辨率DP(设备像素&#xff09;- 物理像素DIP(逻辑像素&#xff09;- 设备独立像素CSS 像素屏幕特性 DRP&#xff08;设备像素比&#xff09;PPI(Pixels Per Inch ) - 像素密度屏幕像素密度PPI 目的 做一个前端或或者产品开发者&#xff0c; 在涉…

Simulink 封装

快捷键&#xff1a; Edit Mask&#xff1a;CtrlM Look Under Mask&#xff1a;CtrlU 封装之后的模型&#xff1a; Edit Mask界面&#xff1a; 双击模块后的提示界面&#xff1a; 封装的模块内部&#xff1a;

防火墙两台设备对接,隧道成功建立后,总部子网pc不能ping通分部子网,怎么排查解决?

环境: 总部 深信服防火墙 8.0.75 AF-2000-FH2130B-SC 分部 深信服防火墙 8.0.75 AF-2000-FH2130B-SC 问题描述: 防火墙两台设备对接,隧道成功建立后,总部子网pc不能ping通分部子网,怎么排查解决?分部子网可以ping通总部子网。 两台防火墙之前是做热备的,配置一样,…

C语言编程题目及答案分享——持续更新

1.输入一个球的半径&#xff0c;计算这个球的表面积和体积&#xff0c;输出计算结果 #include<stdio.h> const float PI3.1415926; float mianji(float r){float s;s 4*PI*r*r;return s; } float tiji(float r){float s;s 4*PI*r*r*r/3;return s; }int main(){float r…

ARINC825规范简介

ARINC825规范简介 机载CAN网络通用标准 ARINC825规范全称为机载CAN网络通用标准&#xff08;The General Standardization of CAN for Airborne Use&#xff09;。顾名思义&#xff0c;ARINC825规范是建立在CAN物理网络基础上的高层规范。CAN网络使用共享的双绞电缆传输数据&…

如何套用模板制作大屏?

在山海鲸可视化的资源中心里内置了大量的二维、三维大屏模板&#xff0c;大家可以根据需要找到自己想要的模板&#xff0c;然后点击下载直接进行使用。 有需要可自行前往哔哩哔哩账号中观看相关内容的视频教程↓↓↓ 山海鲸可视化的个人空间-山海鲸可视化个人主页-哔哩哔哩视频…

Web自动化测试 —— 关键数据记录

记录关键数据的作用 内容作用日志1、记录代码执行情况&#xff0c;方便复现场景&#xff0c;也可以作为bug依据截图1、断言失败或成功的截图&#xff1b;2、异常截图达到丰富报告的作用&#xff1b;3、可以作为bug依据page source1、协作排查报错时元素是否存在 一、行为日志记…