Git学习笔记(第10章):自建代码托管中心GitLab

目录

[10.1 简介](#10.1 简介)

[10.2 安装](#10.2 安装)

[10.2.1 准备服务器](#10.2.1 准备服务器)

[10.2.2 准备安装包](#10.2.2 准备安装包)

[10.2.3 编写安装脚本](#10.2.3 编写安装脚本)

[10.2.4 初始化GitLab服务](#10.2.4 初始化GitLab服务)

[10.2.5 启动GitLab服务](#10.2.5 启动GitLab服务)

[10.2.6 使用浏览器访问GitLab](#10.2.6 使用浏览器访问GitLab)

[10.3 创建远程库](#10.3 创建远程库)

[10.4 本地库推送到远程库](#10.4 本地库推送到远程库)


10.1 简介

GitLab是由GitLab Inc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它使用Ruby 语言 写成 。后来,一些部分用Go 语言 重写 。截止2018年5月,该公司约有290 名 团队成员 ,以及2000 多名 开源贡献者。GitLab被IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O'ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX等组织使用。

10.2 安装

官网地址:The DevSecOps Platform | GitLab

安装说明:https://about.gitlab.com/installation/

Gitlab-ee:企业旗舰版

Gitlab-ce:社区免费版

10.2.1 准备服务器

此部分需要具备虚拟机搭建的相关知识,可参考《Linux学习笔记》(见主页)。

  • Step1 : 准备一个系统为CentOS7以上版本的服务器(此处克隆虚拟机)
  • Step2 :开启并登录虚拟机gitlab-server
    • 注1:克隆虚拟机gitlab-server与模板虚拟机hadoop100的配置完全相同(包括账号和密码)
    • 注2:此处 登录root账号
  • Step3 :关闭防火墙
    • 临时关闭防火墙:systemctl stop firewalld
    • 开机启动时关闭防火墙:systemctl disable firewalld.service
    • 参考《Lin ux学习笔记》4.7 案例实操:防火墙
  • Step4 :修改克隆机的主机名和IP地址
    • 主机名 :gitlab-server
      • hostnamectl set-hostname gitlab-server
    • IP 地址 :192.168.171.200
      • cd /etc/sysconfig/network-scripts
      • vim ifcfg-ens33
    • 参考《Linux学习笔记》三、网络配置
  • Step5:重启服务器 reboot
  • Step6 :配置windows的hosts映射文件
    • Step6.1:进入C:\Windows\System32\drivers\etc 路径
  • Step6.2:拷贝hosts文件到桌面
  • Step6.3:打开桌面hosts文件,并添加相应内容
  • Step6.4: 将桌面hosts 文件覆盖C:\Windows\System32\drivers\etc 路径hosts 文件
    • 参考《Linux学习笔记》3.4 配置hosts映射文件

10.2.2 准备安装包

使用yum 进行在线安装 gitlab-ce时,需要下载几百M的安装文件,非常耗时,对网络的要求较高。因此,最好提前把所需RPM包下载到本地,再使用rpm 进行离线安装。

10.2.3 编写安装脚本

Gitlab的安装步骤比较繁琐,因此我们可以参考官网编写gitlab的安装脚本。

  • Step2:给脚本增加执行权限

    [root@gitlab-server module]# chmod +x gitlab-install.sh

    [root@gitlab-server module]# ll

    总用量 403104

    -rw-r--r--. 1 root root 412774002 4 月 7 15:47 gitlab-ce-13.10.2-ce.0.el7.x86_64.rpm

    -rwxr-xr-x. 1 root root 416 4 月 7 15:49 gitlab-install.sh

  • Step3 :执行脚本,开始安装gitlab-ce
    • 注:一定要保证服务器可以上网(脚本涉及到yum命令在线安装)

      [root@gitlab-server module]# ./gitlab-install.sh

      警告:/opt/module/gitlab-ce-13.10.2-ce.0.el7.x86_64.rpm: 头 V4

      RSA/SHA1 Signature, 密钥 ID f27eab47: NOKEY

      准备中... #################################

      [100%]

      正在升级/安装...

      1:gitlab-ce-13.10.2-ce.0.el7

      ################################# [100%]

      。 。 。 。 。 。

10.2.4 初始化GitLab服务

复制代码
[root@gitlab-server module]# gitlab-ctl reconfigure

。 。 。 。 。 。

Running handlers:

Running handlers complete

Chef Client finished, 425/608 resources updated in 03 minutes 08

seconds

gitlab Reconfigured!

10.2.5 启动GitLab服务

  • 启动gitlab 服务:gitlab-ctl start

  • 停止gitlab 服务:gitlab-ctl stop

    [root@gitlab-server module]# gitlab-ctl start

    ok: run: alertmanager: (pid 6105) 89s

    ok: run: gitaly: (pid 5996) 91s

    ok: run: gitlab-exporter: (pid 5988) 91s

    ok: run: gitlab-workhorse: (pid 5958) 92s

    ok: run: grafana: (pid 6128) 89s

    ok: run: logrotate: (pid 5312) 182s

    ok: run: nginx: (pid 5275) 188s

    ok: run: node-exporter: (pid 5982) 92s

    ok: run: postgres-exporter: (pid 6120) 89s

    ok: run: postgresql: (pid 4909) 243s

    ok: run: prometheus: (pid 6083) 91s

    ok: run: puma: (pid 5133) 206s

    ok: run: redis: (pid 4676) 255s

    ok: run: redis-exporter: (pid 5990) 91s

    ok: run: sidekiq: (pid 5164) 200s

10.2.6 使用浏览器访问GitLab

  • Step1 :访问GitLab服务器
    • 方式1 :IP地址访问(默认端口为80,可不写) 192.168.171.200
  • 方式2 :主机名访问 http://gitlab-server (必须配置windows的hosts映射文件)
    • 注:此处只能使用http,不能使用https
  • Step2 :设置root账户的密码
    • 首次登陆之前,需要修改下GitLab提供的root账户的密码
    • 密码要求:8位以上,包含大小写子母和特殊符号
  • Step3:使用修改后的密码登录GitLab

10.3 创建远程库

  • Step1:New Project → Create blank project
  • Step2:输入远程库名称
  • Step3:查看效果

10.4 本地库推送到远程库

  • Step2:本地库推送到远程库
  • Step3:查看效果


只要GitLab的远程库连接定义好以后,对GitLab远程库进行pull和clone的操作和Github和码云一致,此处不再赘述。

相关推荐
优选资源分享1 小时前
PicGo v3.0.3 新版 | 开源免费图床工具
javascript·笔记·electron
星恒随风2 小时前
Linux线程概念详解:从分页存储、页表、MMU与TLB,深入理解线程和进程的区别与联系
linux·运维·笔记·学习·状态模式
qq_284274052 小时前
数控机床编程基础与坐标系:编程六步流程、程序号/程序段/程序字格式,与右手定则下车床铣床XYZ轴判定(含考点)
笔记·学习·自动化·制造
德林恩宝2 小时前
On-Policy Distillation(OPD)学习文档
人工智能·学习·机器学习·大模型·llm·大模型微调
问心无愧05132 小时前
[SUCTF 2019]EasySQL
笔记
ss2732 小时前
PG实战笔记 | 09 PostgreSQL psql客户端基本操作
数据库·笔记·postgresql
xxwl5853 小时前
区域赛分类题解
c++·笔记·学习·算法
catoop4 小时前
用 Shell 包装函数,让单个命令拥有专属配置
git
成都蜀味缘餐饮技术培训学校5 小时前
油炸串串技术培训实战指南,核心食材选购与预处理标准
数据仓库·经验分享·笔记·课程设计·微信公众平台
摇滚侠6 小时前
《大模型应用开发实践:基于 Spring AI+DeepSeek 实现》第 11 章 大模型技术概览 阅读笔记 1
人工智能·笔记·spring