使用阿里云服务器部署和使用GitLab

news2024/11/25 1:01:58

本文阿里云百科分享使用阿里云服务器部署和使用GitLab,GitLab是Ruby开发的自托管的Git项目仓库,可通过Web界面访问公开的或者私人的项目。本教程介绍如何部署和使用GitLab。

目录

准备工作

部署GitLab环境

使用GitLab

登录GitLab

生成密钥对文件并获取公钥

创建项目

使用GitLab


准备工作

部署GitLab前,请确保您已创建一台ECS实例,并且ECS实例必须满足以下条件:

  • 实例已分配公网IP地址或绑定弹性公网IP(EIP)。

  • 操作系统:必须为CentOS 7.x。

  • ECS云服务器:aliyunbaike.com/go/ecs

  • 实例规格:部署GitLab的实例规格要求至少为4 vCPU和4 GiB内存。

  • 已在安全组内添加入方向规则放行80端口。具体操作,请参见添加安全组规则。

 

部署GitLab环境

  1. 远程连接需要部署GitLab环境的ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例。

  2. 安装GitLab所需依赖包。

    sudo yum install -y curl policycoreutils-python openssh-server
  3. 启动SSH服务并设置SSH服务为开机自启动。

    sudo systemctl start sshd
    sudo systemctl enable sshd
  4. (可选)安装并配置Postfix。

    Postfix用于GitLab发送电子邮件通知。如果您想使用其他解决方案发送电子邮件,请跳过此步骤并在安装GitLab后配置外部SMTP服务器。具体操作,请参见配置外部 SMTP 服务器。

    1. 安装Postfix。

      sudo yum install -y postfix

      如果提示类似以下报错信息,请执行rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022命令后,重新安装Postfix。

      Falling package is :mysql-community-libs-compat-5.7.41-1.el7.x86_64
      GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    2. 启动Postfix并设置Postfix为开机自启动。

      sudo systemctl start postfix
      sudo systemctl enable postfix
  5. 添加GitLab软件包仓库。

    sudo curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    说明 

    由于网络原因,可能会出现无法添加GitLab软件包仓库的问题,建议您多尝试几次。

    当出现类似如下回显信息,表示GitLab软件包仓库已安装。

    image.png

  6. 安装GitLab。

    sudo EXTERNAL_URL=<GitLab服务器的公网IP地址> yum install -y gitlab-ce

    <GitLab服务器的公网IP地址>请替换成安装GitLab的实例公网IP地址,示例命令如下:

    sudo EXTERNAL_URL=101.132.XX.XX yum install -y gitlab-ce

    当出现类似如下回显信息,表示GitLab已经安装成功。

    image.png

使用GitLab

登录GitLab

  1. 获取GitLab的登录密码。

    sudo cat /etc/gitlab/initial_root_password

    回显信息类似如下所示,您可以在Password后获取GitLab的初始登录密码。

    重要 

    出于安全原因,24小时后,该文件会被自动删除,建议您安装成功,首次登录之后,立即修改初始密码。

    image.png

  2. 登录GitLab。

    在浏览器的地址栏中,输入ECS服务器的公网IP即可进入GitLab的登录界面,首次登录使用用户名root,密码为步骤1获取的密码。

    asda5

 

生成密钥对文件并获取公钥

  1. 安装Git工具。

    sudo yum install git
  2. 生成密钥对文件id_rsa

    ssh-keygen

    生成密钥对的过程中,系统会提示输入密钥对存放目录(默认为当前用户目录下的.ssh/id_rsa,例如/home/test/.ssh/id_rsa)和密钥对密码,您可以手动输入,也可以按Enter保持默认。

    回显信息类似如下所示。

    image.png

  3. 查看并复制公钥文件id_rsa.pub中的内容,便于后续步骤使用。

    cat .ssh/id_rsa.pub

    回显信息类似如下所示。

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQVwWjF3KXmI549jDI0fuCgl+syJjjn55iMUDRRiCd/B+9TwUda3l9WXH5i7RU53QGRCsDVFZxixLOlmXr9E3VSqkf8xXBnHs/5E2z5PIOCN0nxfB9xeA1db/QxPwK4gkHisep+eNHRn9x+DpCYDoSoYQN0nBg+H3uqfOqL42mJ+tqSfkyqbhjBf1kjtDTlBfVCWtI0siu7owm+c65+8KNyPlj5/0AyJ4Aqk1OX2jv+YE4nTipucn7rHwWuowasPU86l+uBsLNwOSb+H7loJvQyhEINX2FS1KnpRU+ld20t07n+N3ErfX5xBAGfxXpoN9BKKSP+RT7rvTeXTVE**** test@iZuf63zs0dn0qccsisy****

创建项目

  1. 在GitLab的主页中,单击Create new project,新建一个Project。

    ada55

  2. Create new project页面,单击Create blank project,并设置Project相关配置项。

    本文以mywork项目为例进行说明。

    asda566

  3. 添加SSH key。

    1. 在当前project页面,单击Add SSH key

      sdaa

    2. 将公钥文件id_rsa.pub中的内容粘贴到Key所在的文本框中。

      asda

    3. 单击Add key

      SSH Key添加完成后,如下图所示。

      sda

  4. 复制Clone链接,该链接在进行克隆操作时需要使用。

    项目地址

 

使用GitLab

  1. 配置使用Git仓库的人员信息。

    1. 配置使用Git仓库的人员姓名。

      git config --global user.name "testname" 
    2. 配置使用Git仓库的人员邮箱。

      git config --global user.email "abc@example.com" 
  2. 克隆已创建的项目到本地。

    git clone git@101.132.XX.XX:root/test.git

    简单配置

  3. 上传文件到GitLab服务器。

    1. 进入到项目目录。

      cd mywork/ 
    2. 创建需要上传到GitLab中的目标文件。

      echo "test" > /home/test/test.sh
    3. 将目标文件或者目录复制到项目目录下。

      cp /home/test/test.sh ./ 
    4. test.sh文件加入到索引中。

      git add test.sh
    5. test.sh提交到本地仓库。

      git commit -m "test.sh"
    6. 将文件同步到GitLab服务器上。

      git push -u origin main

      文件同步命令

      在网页中查看上传的test.sh文件已经同步到GitLab服务器中。

      文件同步结果

 本文转自阿里云官方文档。

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

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

相关文章

HoloLens 2设备MR 应用交互设计

AR 眼镜实现了虚拟世界与现实世界的融合&#xff0c;完成屏幕的“跨越”&#xff0c;人机交互设计也从二维平面迈向三维世界。目前&#xff0c;MR 应用的人机交互界面仍然处于早期发展阶段&#xff0c;各种理念和方法仍处于逐步形成与应用阶段&#xff0c;低成本地完成使用者从…

记录一下Java实体转json字段顺序问题

特殊需求&#xff0c;和C交互他们那边要求字段顺序要和他们定义的一致(批框架) 如下&#xff1a; Data public class UserDto {private String name;private Integer age;private String addr; }未转换前打印&#xff1a; 转换后打印&#xff1a; 可以看到转换为json顺序打印…

第9届Python编程挑战赛北京赛区复赛真题剖析-2023年全国青少年信息素养大赛

[导读]&#xff1a;超平老师计划推出《全国青少年信息素养大赛Python编程真题解析》50讲&#xff0c;这是超平老师解读Python编程挑战赛系列的第16讲。 全国青少年信息素养大赛&#xff08;原全国青少年电子信息智能创新大赛&#xff09;是“世界机器人大会青少年机器人设计与…

Spring与Spring Bean

Spring 原理 它是一个全面的、企业应用开发一站式的解决方案&#xff0c;贯穿表现层、业务层、持久层。但是 Spring 仍然可 以和其他的框架无缝整合。 Spring 特点 轻量级 控制反转 面向切面 容器 框架集合 Spring 核心组件 Spring 总共有十几个组件核心容器(Spring core) S…

02.Deep Visual-Semantic Alignments for Generating Image Descriptions

目录 前言泛读摘要IntroductionRelated Work小结 精读Model3.1 学习对齐视觉与语言数据图片表征句子表征对齐目标损失函数解码文本片段对齐图像 MRNN生成描述优化 实验结论 代码 前言 本课程来自深度之眼《多模态》训练营&#xff0c;部分截图来自课程视频。 文章标题&#xf…

湘大 XTU OJ 1290 Alice and Bob 题解(非常详细):字符串 分类讨论 简单模拟

一、链接 1290 Alice and Bob 二、题目 题目描述 Alice和Bob玩剪刀-石头-布的游戏&#xff0c;请你写个程序判断一下比赛的结果。 输入 第一行是一个整数K&#xff0c;表示样例的个数。 以后每行两个单词&#xff0c;rock表示石头&#xff0c;paper表示布&#xff0c;scis…

ETL技术入门之ETLCloud初认识

首先ETL是什么&#xff1f; ETL代表“Extract, Transform, Load”&#xff0c;是一种用于数据集成和转换的过程。它在数据管理和分析中扮演着重要的角色。下面我们将分解每个步骤&#xff1a; Extract&#xff08;抽取&#xff09;&#xff1a; 这一步骤涉及从多个不同的数据源…

小说推文怎么做详细教程。小说推文项目拆解及分享

科思创业汇 大家好&#xff0c;这里是科思创业汇&#xff0c;一个轻资产创业孵化平台。赚钱的方式有很多种&#xff0c;我希望在科思创业汇能够给你带来最快乐的那一种&#xff01; 如何制作小说推文的详细教程&#xff01; 我做自媒体已经五年了&#xff0c;在自媒体行业也…

YOLOv5、YOLOv8改进:MobileViT:轻量通用且适合移动端的视觉Transformer

MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer 论文&#xff1a;https://arxiv.org/abs/2110.02178 1简介 MobileviT是一个用于移动设备的轻量级通用可视化Transformer&#xff0c;据作者介绍&#xff0c;这是第一次基于轻量级CNN网络性…

CMake语法中的PUBLIC、PRIVATE、INTERFACE关键字含义

在CMake语法中&#xff0c;经常见到PUBLIC、PRIVATE、INTERFACE关键字&#xff0c;它们是什么意思呢&#xff1f;下面举例说明。 如上图,说明如下&#xff1a; RIVATE&#xff1a;私有的。生成 libhello-world.so时&#xff0c;只在 hello_world.c 中包含了 hello.h&#xff0…

C# 随机法求解线性规划问题 蒙特卡洛

线性规划问题: max3x12x2 x12x2<5 2x1x2<4 4x13x2<9 x1>0 x2>0 正确的结果:x11.5; x21, max z6.5 Random random1 new Random(DateTime.Now.Millisecond);Random random2 new Random(DateTime.Now.Millisecond*DateTime.Now.Millisecond);double max-9999,x1…

【electron】electron项目创建的方式:

文章目录 【1】npm init quick-start/electron&#xff08;推荐&#xff09;【2】 克隆仓库&#xff0c;快速启动【3】 通过脚手架搭建项目【4】 手动创建项目 【Electron官网】https://www.electronjs.org/zh/docs/latest/api/app 【1】npm init quick-start/electron&#xf…

六 动手学深度学习v2 ——权重衰退+dropout

1. 权重衰退 最常见的用来处理过拟合的方法 使用均方范数作为硬性限制 使用均方范数作为软性限制 总结&#xff1a; 正则化是处理过拟合的常用方法&#xff1a;在训练集的损失函数中加入惩罚项&#xff0c;以降低学习到的模型的复杂度。 保持模型简单的一个特别的选择是使用…

PostgreSQL查询慢sql原因和优化方案

PostgreSQL sql查询慢优化方案有一下几种解决方案&#xff1a; 1.关闭会话 查询慢sql的执行会话&#xff0c;关闭进程。 查看数据库后台连接进程 SELECT count(*) FROM pg_stat_activity;SELECT * FROM pg_stat_activity; 查看数据库后台连接进程&#xff0c;但是此条SQL不…

稳定的亚马逊测评需要具备哪些条件

自养号测评已经在跨境电商领域变得司空见惯。绝大部分卖家都已开始对店铺产品进行自测评。虽然平台和消费者对测评补单持反感态度&#xff0c;但在普遍测评的环境下&#xff0c;不参与测评可能会导致被市场淘汰。 目前&#xff0c;为了提高安全性&#xff0c;许多卖家已开始自…

自动化测试:你根本不懂自动化测试的快乐

接触了不少同行&#xff0c;由于他们之前一直做手工测试&#xff0c;现在很迫切希望做自动化测试&#xff0c;其中不乏工作5年以上的人。 本人从事软件自动化测试已经近6年&#xff0c;从server端到web端&#xff0c;从API到mobile&#xff0c;切身体会到自动化带来的好处与痛楚…

一分钟上手Vue VueI18n Internationalization(i18n)多国语言系统开发、国际化、中英文语言切换!

这里以Vue2为例子 第一步&#xff1a;安装vue-i18n npm install vue-i18n8.26.5 第二步&#xff1a;在src下创建js文件夹&#xff0c;继续创建language文件夹 在language文件夹里面创建zh.js、en.js、index.js这仨文件 这仨文件代码分别如下&#xff1a; zh.js export de…

Vue实现图片懒加载

Vue实现图片懒加载 前言1.使用vue-lazyload/vue3-lazyload插件2.自定义v-lazy懒加载指令2.1 使用VueUse工具集2.2 使用IntersectionObserver 前言 图片懒加载是一种常见性能优化的方式&#xff0c;它只去加载可视区域图片&#xff0c;而不是在网页加载完毕后就立即加载所有图片…

2023杭电多校第8场E题-0 vs 1

题目链接&#xff1a;http://csoj.scnu.edu.cn/contest/102/problem/1005 解题思路&#xff1a; 代码如下&#xff1a; #include<iostream> #include<math.h> #include<algorithm> using namespace std; const int N 1e5 10;int s[N], l, r; int now;int…

高并发系统设计要点

在系统设计时&#xff0c;如果能预先看到一些问题&#xff0c;并在设计层面提前解决&#xff0c;就会给后期的开发带来很大的便捷。相反&#xff0c;有缺陷的架构设计可能会导致后期的开发工作十分艰难&#xff0c;甚至会造成“推倒重来”的情形。因此&#xff0c;在系统设计阶…