使用阿里云服务器部署和使用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服务器中。

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

相关推荐
陈译8 小时前
Grafana——如何迁移Grafana到一台新服务器
运维·服务器·grafana
悟空码字8 小时前
阿里云上线 DeepSeek,AI 领域再掀波澜
阿里云·deepseek
柳鲲鹏8 小时前
docker push镜像到阿里云
阿里云·docker·容器
wangjun51598 小时前
linux redis ipv6、ipv4 只接收本地访问、接收本地和远程访问
linux·运维·服务器
x66ccff8 小时前
【nvidia】NCCL禁用P2P后果权衡
服务器·网络协议·p2p
信阳农夫8 小时前
linux中yum是干啥的?
linux·运维·服务器
黑客老李9 小时前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
java·运维·服务器·前端·xss
huosenbulusi9 小时前
Linux多版本管理工具介绍
linux·运维·服务器
猪萌萌9 小时前
关于如何利用群晖Docker搭建Project Zomboid(僵尸毁灭工程)私人服务器-保姆级教程
服务器·docker·容器·僵尸世界大战·游戏服务器搭建
G皮T9 小时前
【弹性计算】IaaS 和 PaaS 类计算产品
阿里云·云计算·paas·iaas·云服务器·弹性服务器·弹性计算