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

本文阿里云百科分享使用阿里云服务器部署和使用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软件包仓库已安装。

  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已经安装成功。

使用GitLab

登录GitLab

  1. 获取GitLab的登录密码。

    复制代码
    sudo cat /etc/gitlab/initial_root_password

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

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

  2. 登录GitLab。

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

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

  1. 安装Git工具。

    复制代码
    sudo yum install git
  2. 生成密钥对文件id_rsa

    复制代码
    ssh-keygen

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

    回显信息类似如下所示。

  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。

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

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

  3. 添加SSH key。

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

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

    3. 单击Add key

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

  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服务器中。

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

相关推荐
爱学习的小囧4 分钟前
VMware ESXi 6.7U3v 新版特性、驱动集成教程和资源包、部署教程及高频问答详情
运维·服务器·虚拟化·esxi6.7·esxi蟹卡驱动
小疙瘩8 分钟前
只是记录自己发布若依分离系统到linux过程中遇到的问题
linux·运维·服务器
dldw7771 小时前
IE无法正常登录windows2000server的FTP服务器
运维·服务器·网络
我是伪码农2 小时前
外卖餐具智能推荐
linux·服务器·前端
汤愈韬2 小时前
下一代防火墙通用原理
运维·服务器·网络·security
IMPYLH2 小时前
Linux 的 od 命令
linux·运维·服务器·bash
数据雕塑家4 小时前
Linux下大文件切割与合并实战:解决FAT32文件系统传输限制
linux·运维·服务器
IMPYLH4 小时前
Linux 的 nice 命令
linux·运维·服务器·bash
不是书本的小明4 小时前
阿里云专有云网络架构
网络·阿里云·架构
yleihj5 小时前
vCenter计算机SSL证书续期
服务器·网络协议·ssl