概述

GitLab 是我在日常工作中使用的代码仓库管理系统,它带有非常友好的 Web 界面,并且功能丰富。下面将介绍我在 CentOS 7 上搭建 GitLab 的步骤,以及遇到的一些问题。

关于不同 Git 仓库管理系统的对比,可参考这里,你会发现目前 GitLab 是最受欢迎的。

CentOS 7 搭建 GitLab

如果你使用的是 Windows 系统,可通过虚拟机 VMware 安装 CentOS,进而搭建 GitLab。

关于如何在 CentOS 7 上搭建 GitLab,官方教程在这里,下面是详细说明。

(一) SSH

安装 ssh

sudo yum install -y curl policycoreutils-python openssh-server

将 ssh 服务设为开机自启动

sudo systemctl enable sshd

开启 ssh 服务

sudo systemctl start sshd

(二) 防火墙

安装防火墙,如果已安装了防火墙,则可跳过这一步

yum install firewalld systemd -y

开启防火墙

service firewalld start

将 http 和 https 添加到防火墙,permanent 表示永久生效

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

重启防火墙

sudo systemctl reload firewalld

(三) Postfix

Postfix 用于发送通知邮件。如果你想使用其它方法来发送邮件,可以跳过这个步骤,在 GitLab 安装完成后配置 SMTP 服务。

以下分别是安装、设为自启动以及开启

sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

(四) 安装 GitLab

wget 用于下载 GitLab 安装包,不过你也可以用其它方式下载

yum -y install wget

你可能还需要安装 vim,后面通过它来修改 GitLab 的配置文件

yum install vim -y

下载 GitLab 安装包,可以从官方提供的下载页面下载,也可以从清华大学开源软件镜像站下载,可能镜像站的下载速度会快点

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm

安装 GitLab

rpm -i gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm

(五) 修改配置

等待安装完成后,终端界面会提示你修改 /etc/gitlab/gitlab.rb 文件,通过设置 external_url l来配置你的 URL,通常情况下是你的服务器 ip 和端口号。

vim /etc/gitlab/gitlab.rb

终端界面还提示你通过下面的命令重新配置 GitLab

sudo gitlab-ctl reconfigure

到此为止,你在 CentOS 中的浏览器打开 http://localhost 或者 ip 及端口号,便可以看到 GitLab 的页面了。

常见问题

(一) 设置静态 IP

每次重启电脑之后,电脑在网络中的 IP 可能会发生变化,为此,我们需要设置一个静态 IP。

在 CentOS 7 中,通过以下命令编辑网络配置:

vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改如下(仅供参考,根据你局域网的实际情况来配置),注意其中加注释的几处

PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 使用静态IP地址,默认是dhcp
IPADDR=192.168.5.122 # 设置的静态IP
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.5.2 # 网关
DNS1=192.168.5.2 # DNS服务器
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=8df5a6e0-cba0-4f89-b55c-319d2616a985
DEVICE=ens33
ONBOOT=yes
ZONE=public

重启网络服务使修改后的配置生效

service network restart

如果你使用的是 Windows系统 + VMware 虚拟机,并且网络适配器选择了“NAT模式”,那么需要配置网络端口转发,将主机的端口与虚拟机的端口关联起来,今后访问主机 IP 便可间接访问到虚拟机中的 GitLab。

(二) GitLab 中的时区不对

解决办法:参考这里

(三) 如何汉化

解决办法:参考这里

(四) Windows 系统 + VMware 相关

  1. 虚拟机无法开启,提示 VMware Workstation 15 与 Device/Credential Guard 不兼容。

    解决办法:关闭 Hyper-V,参考这里
  2. 局域网内其它电脑无法访问。

    解决办法:可能需要开放 Windows端口,参考这里

关于 Windows + Docker

我在网上搜寻在 Windows 中搭建 GitLab 的方法时,发现有使用 Docker 的方法,比如这篇:win10企业版在docker上部署gitlab,按照教程一步一步确实是可以运行 GitLab 并且可访问的。

首先安装 docker for windows,接下来在 Docker 中搭建 GitLab,参考这里

然而,这种方式是存在风险的。GitLab 官方文档中并不推荐,主要因为存储权限和其它一些未知问题,最严重的是它不支持持久化存储,当你的服务器重启之后,所有数据都会丢失。

所以,这种方法目前可能是不可取的(也许有解决办法但是我不知道)。

参考文章

在写这篇教程时,参考了如下的一些文章:

  1. VMware 安装 CentOS + GitLab
  2. CentOS 7 设置静态 ip

CentOS 7 搭建 GitLab的更多相关文章

  1. 基于CentOS 7 搭建 GitLab

    系统要求:CentOS 7.2 64 位操作系统 更新软件包 yum update -y 安装和启动 sshd 安装 sshd: yum install -y curl policycoreutils ...

  2. 基于 CentOS 7 搭建 GitLab

    ⒈更新软件包 yum update -y ⒉安装 ssh服务并启动 yum install -y curl policycoreutils-python openssh-server systemct ...

  3. [转]Centos 7搭建Gitlab服务器超详细

    本文转自:https://blog.csdn.net/duyusean/article/details/80011540 可参考:https://about.gitlab.com/install/#c ...

  4. CentOS 下搭建Gitlab

    centos7安装部署gitlab服务器   我这里使用的是centos 7 64bit,我试过centos 6也是可以的! 1. 安装依赖软件 yum -y install policycoreut ...

  5. Centos 7搭建Gitlab服务器超详细(转)

    一. 安装并配置必要的依赖关系 在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问. 1.安装s ...

  6. Centos 7搭建Gitlab服务器(一),搭配文章(二)一起使用,效果更好

    一. 安装并配置必要的依赖关系在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问. 1.安装ss ...

  7. Centos 7搭建Gitlab服务器超详细Centos 7搭建Gitlab服务器超详细(搭建成功)

    一. 安装并配置必要的依赖关系在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问. 注意:用户不 ...

  8. Centos 7搭建Gitlab服务器超详细

    一. 安装并配置必要的依赖关系在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问. 1.安装ss ...

  9. 如何在CentOS上搭建gitlab服务器

    步骤 1. 打开HTTP和SSH访问 1.1 安装 sudo yum install -y curl policycoreutils-python openssh-server 1.2 开启SSH 这 ...

随机推荐

  1. ASM磁盘组的监控

    ASM磁盘组的监控可以使用oracle数据库查询,需要使用到的是sql语句和oracle数据库的相关操作. 还可以使用命令行进行查询,然后用awk进行文本拆分,拿到需要的值.这个需要使用到的是sudo ...

  2. C语言中【变量】的存储类型共有4种类型

    在C语言中,对变量的存储类型说明有以下四种:   auto          自动变量 (动态存储) register     寄存器变量(动态存储) extern       外部变量(静态存储) ...

  3. #505. 「LibreOJ β Round」ZQC 的游戏

    题目描述 首先一定是让ZQC吃掉他能吃到的所有的球,这样才能尽可能的满足ZQC的质量是所有玩家中最大的. 在满足某一个玩家的质量不会超过ZQC的情况下,让这个玩家吃掉尽可能多的球,让其他玩家吃掉的尽可 ...

  4. 常用命令备忘 xargs

    xargs 作为使用率很高的命令,但是长久不用就会模糊了记忆,所以要记录下来. 获取所有的cobbler相关的布尔值然后全部设置为真 getsebool -a|grep cobbler|awk '{p ...

  5. AtCoder Beginner Contest 133 E - Virus Tree 2(组合数学)

    题意 n个点的树k种颜色,距离不超过2的点对需颜色不同,求方案数 Code(copy) #include<iostream> #include<cstdio> #include ...

  6. Mysql中EXISTS关键字用法、总结

    在做教务系统的时候,一个学生(alumni_info)有多个教育经历(alumni_education),使用的数据库是mysql,之前使用左链接查询的,发现数据量才只有几万条时,查询就很慢了,早上想 ...

  7. CAS5.3服务环境搭建

    什么是Overlay overlay可以把多个项目war合并成为一个项目,并且如果项目存在同名文件,那么主项目中的文件将覆盖掉其他项目的同名文件.使用maven 的Overlay配置实现无侵入的改造c ...

  8. html5中output元素详解

    html5中output元素详解 一.总结 一句话总结: output元素是HTML5新增的元素,用来设置不同数据的输出,没什么大用,了解即可 <form action="L3_01. ...

  9. Java Web J2EE下的两大框架SSH和SSM对比

    当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知识能力.MVC,即模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界 ...

  10. PHPStorm提示:phpdoc comment doesn't contain all necessary @throw tag(s)

    选择Settings => Editor => Inspection, 选择PHP => PHPDoc => Missing @throws tag(s) ,把后面的勾勾去掉就 ...