今天闲来无事,想起之前买了一个阿里云 ECS,一直闲置着没用,一时兴起就想搭个自己的 GitLab 玩玩,GitLab 官网也提供了安装教程,很简单,照着步骤一步步基本没什么问题,可能安装的过程中有一些坑需要自己去解决。

1.安装 GitLab

打开 GitLab 官网 https://www.gitlab.com.cn/installation/#centos-7

根据自己的系统选择,我们选择 CentOS7

首先,安装并配置必要的依赖关系,确保打开防火墙的 SSH 和 HTTP 的访问,如果没有,需要您输入下面命令打开

sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

接下来安装 Postfix 发送邮件通知服务,或者如果您想使用其他方式(SMTP)来发送电子邮件,请跳过此步骤,并在安装了 GitLab 之后配置一个外部SMTP服务器。

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

添加 GitLab 包仓库并安装包

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

接下来,安装 GitLab 包,将 “http://gitlab.example.com” 更改为您想要访问 GitLab 的URL,安装将自动配置并在使用该 URL 来访问 GitLab,HTTPS 需要安装完成后来配置。

温馨提示:此处如果设置为域名访问,如果域名没有备案就会出现无法访问,如果不想备案网站域名,那么此处直接配置为服务器的公网 IP 即可。

因为我配置的是域名,因为我的域名没有备案,所以我访问的时候提示我备案域名,如下图:

配置完成后就开始下载并安装,过程大概会持续一个小时左右,视服务器具体带宽而定。

如果 GitLab 已经安装完成,并且你已经配置了域名想要修改配置变成 ip,按如下步骤执行命令:

vim  /etc/gitlab/gitlab.rb

找到 external_url 设置为你的 IP + 端口即可,注意这里设置的端口不能被占用,默认是 8080 端口,如果 8080 已经使用,请自定义其它端口,并在防火墙设置开放相对应的端口。

然后重置并启动 GitLab 执行:

gitlab-ctl reconfigure
gitlab-ctl restart

然后执行:

gitlab-ctl status

查看 GitLab 运行状态是否正常

访问 GitLab 页面:

输入你配置的ip或者域名来访问 GitLab,如果没有什么异常,会出现如下页面

第一次访问会提示修改密码,你需要按提示修改即可,默认账户名是 root

至此,GitLab 的安装就算完啦。

2.配置 postfix 邮件服务

发邮件系统我们用 Postfix,SMTP 系统默认是开启的,我们先设置关闭 SMTP,开启 Postfix

关闭 SMTP:

vim /etc/gitlab/gitlab.rb

找到 #gitlab_rails['smtp_enable'] = true

改为 gitlab_rails['smtp_enable'] = false

修改后执行

gitlab-ctl reconfigure

另一种是关闭 Postfix,设置开启 SMTP,相关教程请参考官网

https://doc.gitlab.cc/omnibus/settings/smtp.html

此处以配置 163 邮箱为例:

gitlab_rails[‘smtp_enable’] = true
gitlab_rails[‘smtp_address’] = “smtp.163.com”
gitlab_rails[‘smtp_port’] = 25
gitlab_rails[‘smtp_user_name’] = “xxx@163.com”
gitlab_rails[‘smtp_password’] = “xxx”
gitlab_rails[‘smtp_domain’] = “163.com”
gitlab_rails[‘smtp_authentication’] = :login
gitlab_rails[‘smtp_enable_starttls_auto’] = true
gitlab_rails[‘gitlab_email_from’] = “xxx@163.com”
user[“git_user_email”] = “xxx@163.com”

登录到 GitLab 并添加一个 GitLab 账户,并添加设置用户的邮箱地址,测试是否可以收到邮件通知,如果创建完成,设置的邮箱收到邮件说明邮件服务没有问题,注意如果没有收到邮件,有时候邮箱会拦截邮件,你在垃圾邮件中看看是否邮件被拦截,如果被拦截,你可以将此邮件添加到白名单中。

3.其他异常情况处理

另外,如果 访问 GitLab 时的速度非常慢,或者报 502 错误,如下图

可能是你的服务器配置太低,GitLab 官方建议装 GitLab 的服务器的配置最低要求为:CPU 2核心 + 4GB可用内存(RAM + Swap)。 如果服务器配置过低,可能导致您访问 GitLab的速度过慢,甚至会出现无响应等状况。

提示 FirewallD is not running 说明防火墙未开启,

执行 systemctl status firewalld

如果出现 Active: inactive (dead) 表示防火墙未开启。

开启防火墙 systemctl start firewalld

再次查看防火墙状态,如果出现 Active: active (running) 表示防火墙开启成功。

欢迎关注我的微信公众号:

CentOS7.x 搭建 GitLab 教程的更多相关文章

  1. git操作:在CentOS7上面搭建GitLab服务器

    在这篇文章中将要讲解如何在CentOS7上面搭建本地的GitLab服务器. 一.安装并配置必要的依赖关系 首先要在CentOS系统上面安装所需的依赖:ssh.防火墙.postfix(用于邮件通知).w ...

  2. centos7 中搭建gitlab

    1.在virtual box中新建一个虚拟机 2.gitlab ce(community版本)地址:https://about.gitlab.com/installation/#centos-7?ve ...

  3. CentOS7.4搭建GitLab

    1.查看服务器环境 uname -a 2.下载安装包 [1]找到相应的最新版本的下载路径 网址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/e ...

  4. 在CentOS7上面搭建GitLab服务器

    首先要在CentOS系统上面安装所需的依赖:ssh.防火墙.postfix(用于邮件通知).wegt,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问. 1.安装SSH协议 安装命令:sud ...

  5. centOS7.2下 搭建gitlab使用git为团队管理代码

    最近更换了阿里云服务器  使用centOS7.2,目前配置1核2G,搭建gitlab有点吃力,另外如果1核1g就不要搭建了,推荐配置是2核4G以上 下面来简单记录整个搭建过程 注意: 本次实验OS为c ...

  6. Linux系统搭建GitLab---阿里云Centos7搭建Gitlab踩坑

    一.简介 GitLab,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目安装. 它拥有与GitHub类似的功能,能 ...

  7. CentOS7 搭建gitlab服务器

    本文介绍如何在CentOS7.2上搭建Gitlab服务器,并简单介绍如何使用. Preface 使用的是CentOS7.2的操作系统,安装当前最新版Gitlab服务器,下载地址:清华大学开源软件镜像站 ...

  8. centos7搭建gitlab仓库

    在有一些企业里会搭建属于自己的代码仓库,只能内网访问,所以说今天在centos7中搭建了一个gitlab仓库,大家也可以搭建一个玩一玩.呵呵 1.首先安装依赖软件包和开启ssh服务: sudo yum ...

  9. 虚拟机CentOS7安装docker并搭建Gitlab私服

    一.下载安装虚拟机和CentOS7系统 这些流程比较简单不会有什么坑,这里不再阐述 二.安装docker 1.Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验 ...

随机推荐

  1. elasticsearch与ms sql server数据同步

    MS SQL Server Download Elasticsearch Install Elasticsearch Follow instructions on https://www.elasti ...

  2. Python PyQT5的入门使用

    Python 3+ PyQT5的入门使用 窗口类型介绍 QMainWindow,QWidget和QDialog都是用来创建窗口的.可以直接使用也可以继承后再使用. QMainWindow 该类窗口可以 ...

  3. 论文阅读 <Relocalization, Global Optimization and Map Merging for Monocular Visual-Inertial SLAM>

    看了一下港科的基于vins拓展的论文<relocalization, global optimization and merging for vins>,在回环的实现部分总体没有什么变化, ...

  4. springboot与springcloud的关系

    1 . 问题描述 随着springboot.springcloud的不断迭代升级,开发效率不断提升,越来越多的开发团队加入到spring的大军中,今天用通俗的语言,介绍下什么是springboot,s ...

  5. Redis主从复制实现原理

    一.Redis2.8之前的版本, 首先redis复制功能分为同步操作和命令传播两个操作 同步操作作于将从服务器的数据库状态更新至主服务器当前所处的数据库状态  命令传播操作则用于在主服务器的数据库状态 ...

  6. java学习笔记(基础篇)—抽象与接口的区别

    抽象与接口的区别 一.抽象(abstract) 1. 抽象方法 1) 作用:定义规范 2) 抽象方法用来描述具有什么功能,但不提供实现. 3) 如果类中一个方法没有实现就要定义一个抽象方法. 2. 抽 ...

  7. 为使用mock方案测试,而重构代码的小小案例

    import com.sun.deploy.config.DefaultConfig; import javax.security.auth.login.Configuration; import j ...

  8. I/O:Reader

    FileReader: /* 用来读取字符文件的便捷类.此类的构造方法假定默认字符编码和默认字节缓冲区大 小都是适当的.要自己指定这些值,可以先在 FileInputStream 上构造一个 Inpu ...

  9. Storm之API简介

    Storm之API简介 Component组件 1)基本接口 (1)IComponent接口 (2)ISpout接口 (3)IRichSpout接口 (4)IStateSpout接口 (5)IRich ...

  10. md文档的书写《三》

    markdown语法 官网 这是标题 "#加空格" 是标题,通常可以设置六级标题. 内容下 空格是换行 列表 无序列表:使用" - + * "任何一种加空格都可 ...