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

📋 前言

  • 🖱 博客主页:在下马农的碎碎念
  • 🤗 欢迎关注🔎点赞👍收藏⭐️留言📝
  • ✍ 本文由在下马农原创,首发于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.rhkb.cn/news/141809.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【STM32单片机】u8g2智能风扇设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用STM32F103C8T6单片机控制器,使用按键、IIC OLED模块、DS18B20温度传感器、直流电机、红外遥控等。 主要功能: 初始化后进入温度显示界面,系统初始状态为手动…

医院陪诊小程序源码 陪诊陪护小程序源码

医院陪诊小程序源码 陪诊陪护小程序源码 近年来,随着互联网技术的不断发展,我们的生活中出现了越来越多的智能设备和智能应用,这些智能应用不仅极大方便了我们的生活,还对现代医疗服务体验产生了深远的影响。本文将为大家介绍一种…

JVM G1垃圾回收器学习笔记

前言 最近在工作中遇到频繁FullGC且YoungGC时间有时特别长的情况,而自己对JVM的垃圾回收也是一知半解,因此需要对JVM做系统的了解,为快速解决工作中的问题,能有效分析GC日志和业务代码,先从G1垃圾回收器开始学习&…

贪心算法-

代码随想录 什么是贪心 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 这么说有点抽象,来举一个例子: 例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿&#xff…

linux驱动之input子系统简述

文章目录 一、什么是input子系统二、内核代码三、代码分析 一、什么是input子系统 Input驱动程序是linux输入设备的驱动程序,我们最常见的就按键,触摸,插拔耳机这些。其中事件设备驱动程序是目前通用的驱动程序,可支持键盘、鼠标…

邮件营销方案

互联网的快速发展,使得新媒体营销、短视频营销、微信营销等新型营销方式成为主流。但是邮件营销仍然是性价比很高的营销方式之一,它不仅可以帮助你与潜在客户建立联系、传达信息并促进销售,同时也是维系老客户的重要手段之一。特别是对于外贸…

解答嵌入式和单片机的关系

嵌入式系统是一种特殊的计算机系统,用于特定任务或功能。而单片机则是嵌入式系统的核心部件之一,是一种在单个芯片上集成了处理器、内存、输入输出接口等功能的微控制器。刚刚好我这里有一套单片机保姆式教学,里面有编程教学、问题讲解、语言…

C++:优先级队列模拟实现和仿函数的概念使用

文章目录 使用方法Compare仿函数一些场景模板参数和函数参数 本篇总结优先级队列 使用方法 首先在官网查看它的一些用法 template <class T, class Container vector<T>,class Compare less<typename Container::value_type> > class priority_queue;从…

【golang】深入理解Go语言垃圾回收(GC)

垃圾回收 垃圾回收版本1.3之前标记-清除&#xff08;mark and sweep&#xff09;算法标记-清除&#xff08;mark and sweep&#xff09;的缺点 版本1.5的三色并发标记法没有STW的三色标记法屏障机制强-弱 三色不等式插入屏障删除屏障 版本1.8的混合写屏障&#xff08;hybrid wr…

【计算机网络】——数据链路层(应用:局域网、广域网、设备 )

//仅做个人复习和技术交流&#xff0c;图片取自王道考研&#xff0c;侵删 一、大纲 1、介质访问控制 信道划分介质访问控制 随机访问介质访问控制 2、局域网 3、广域网 4、数据链路层设备 二、局域网 1、局域网基本概念和体系结构 局域网(LocalArea Network): 简称LAN&…

[maven] 实现使用 plugin 及 properties 简述

[maven] 实现&使用 plugin 及 properties 简述 这章内容&#xff0c;我个人感觉可看可不看……&#xff1f; 不过课都上了&#xff0c;笔记 &#x1f4d2; 补完才对得起自己嘛 plugins 主要讲一下 maven 的 plugin 时怎么实现的&#xff0c;以及项目中怎么调用自己实现…

实现电商跨平台订单每日自动对账

场景描述&#xff1a; 多数商家都存在多电商平台同时经营的情况&#xff0c;而进行订单对账则是相关业务或财务人员的每日必修课。比如商家在天猫&#xff0c;苏宁&#xff0c;1号店&#xff0c;京东等均有运营店铺&#xff0c;每天需要通过各电商后台系统抓单打单&#xff0c…

若依cloud -【 100 ~ 103 】

100 分布式日志介绍 | RuoYi 分布式日志就相当于把日志存储在不同的设备上面。比如若依项目中有ruoyi-modules-file、ruoyi-modules-gen、ruoyi-modules-job、ruoyi-modules-system四个应用&#xff0c;每个应用都部署在单独的一台机器里边&#xff0c;应用对应的日志的也单独存…

springboot如何接入netty,实现在线统计人数?

springboot如何接入netty&#xff0c;实现在线统计人数&#xff1f; Netty 是 一个异步事件驱动的网络应用程序框架 &#xff0c;用于快速开发可维护的高性能协议服务器和客户端。 Netty ​ 是一个 NIO 客户端服务器框架 ​&#xff0c;可以快速轻松地开发协议服务器和客户端等…

微表情识别API + c++并发服务器系统

微表情识别API c并发服务器系统 该项目只开源c并发服务器程序&#xff0c;模型API部分不开源 地址&#xff1a;https://github.com/lin-lai/-API- 更新功能 4.1版本 改用epoll实现IO多路复用并发服务器 项目介绍 本项目用于检测并识别视频中人脸的微表情 目标任务: 用户上…

【李沐深度学习笔记】线性代数

课程地址和说明 线性代数p1 本系列文章是我学习李沐老师深度学习系列课程的学习笔记&#xff0c;可能会对李沐老师上课没讲到的进行补充。 线性代数 标量 标量&#xff08;scalar&#xff09;&#xff0c;亦称“无向量”。有些物理量&#xff0c;只具有数值大小&#xff0c…

基于微信小程序的校园失物招领系统设计与实现(源码+lw+部署文档+讲解等)

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…

Qt创建线程(使用moveToThread方法创建子线程)

1.moveTothread方法: &#xff08;1&#xff09;要使用moveToThread方法必须继承与QObject类 &#xff08;2&#xff09;创建任务对象时不能指定父对象 例子&#xff1a; MyWork* work new MyWork(this); // error MyWork* work new MyWork; // ok &#xff08;3&#…

北工大汇编题——分支程序设计

题目要求 信息检素程序设计&#xff1a;在数据区&#xff0c;有9个不同的信息&#xff0c;编号 0-8&#xff0c;每个信息包括20 个字符。从键盘接收 0-8 之间的一个编号&#xff0c;然后再屏幕上显示出相应编号的信息内容&#xff0c;按“q”键退出 完整代码 DATAS SEGMENTn0…

搭建SpringBoot项目三种方式(超详细版)

目录 一、官网下载压缩包解压 二、通过Idea脚手架搭建 三、Spring Boot项目结构 3.1 pom.xml文件 3.2 启动类 3.3 配置文件 四、通过创建Maven项目添加依赖 一、官网下载压缩包解压 接下来我们搭建一个SpringBoot项目&#xff0c;并引入SpringMVC的功能&#xff0c;首先…