CentOS8.1搭建Gitlab服务器详细教程

  Gitlab和Github的区别就不多说了,一句话来概括就是:Gitlab是给企业私有化部署的Git服务器,Github是互联网在线版的Git服务器!

  Github对于开源项目建仓是免费使用的,那么Gitlab收不收费呢?分布式版本控制方面的功能Gitlab也是免费使用的,提供了社区版(Gitlab CE)给大家!Gitlab现在可强大了(2020年),已经有自己成套的DevOps落地解决方案(提高生产力的利器),但是这部分功能是在收费的旗舰版/企业版(Gitlab EE)上提供的!就像Github建私有化仓库的功能也是收费的一样,很正常!

  本文内容简单轻松,车速也不快,各位同学不用坐太好也不用扶太稳!现在来正式从“零”开始搭建Gitlab服务器:

  首先,百度里找到Giblab官网,先进去首页!不要太深入!(未来各位同学看到的界面可能会不一样,时代在进步,网站也在持续更新嘛!我这里的一系列截图是2020.06的)

  看看这首屏的广告和设计,多么科技和魅力→DevOps、CI、CD,一个个的关键字都是当前中国各类互联网公司研发体系正在努力改造的方向(2020年)!看到那个大大的骚黄色写着“Try Gitlab fro FREE”的按钮没有→“免费试用Gitlab”的意思,也就是试用完后要收费的旗舰版GitlabEE的入口。在首页看了一圈也没看到传说中的免费的社区版GitlabCE的入口,咱到顶部导航菜单项"Install Gitlab"里看看:

  还是30天试用期的旗舰版(企业版)的入口和安装说明!不过这里有个重要的信息要留意下“recommend at least 4GB of free RAMto run GitLab”,官方建议使用至少4GB的可用内存来运行Gitlab,那我们一会安装虚拟机或选用服务器时就要注意了,至少要4GB以上,最好是6GB以上,因为还要留些空间给操作系统用!我们再点进CentOS 8的Gitlab安装说明里,看看有没有咱想要的社区版(GitlabCE):

  乍一看好像还是没有的样子,只是展开了在CentOS 8下的安装步骤和方法!那就看看CentOS 8中怎么装吧,看着看着,在最后发现了些什么:

  在安装步骤的最后,有一个短短的链接,写着"CE or EE",似乎有个CE版的入口,点进去:

  新页面前面的好几段依然在讲使用旗舰版(企业版Gitlab EE)有多少好处....直到最后才放了一个免费社区版(GitlabCE)的链接“Install GitLab Community Edition”,藏得这么深,这是怕别人知道啊!续继点进去:

  终于到了,现在浏览地址栏和页面中的安装说明的内容都已变成CE版的(将来看到这文章的同学,那时可能Gitlab官网已经改版了,社区版(GitlabCE)的入口位置和地址也可能换了,但只要Gitlab还有免费版,就肯定会在官网某个地方有个入口的!)。

  找到了Gitlab CE版的安装说明,我们老样子,准备好新的CentOS 8.1虚拟机,根据官方建议,这台虚拟机内存和硬盘都设置大一点:

  虚拟机准备好后,按着官方GitlabCE版的安装说明进行安装即可,其实很简单,认真算起来只有三步(由于我是root身份,所以不用sudo):

  第一步:安装和启用policycoreutils、openssh-server和openssh-clients组件,并将它们开放防火墙(不要忘了reload防火墙):

# dnf install -y curl policycoreutils openssh-server openssh-clients
# systemctl enable sshd
# systemctl start sshd
# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# systemctl reload firewalld

  与邮件通知相关的Postfix组件其实可以暂时不用安装和配置,这个可以放到后面再来配置一个外部的SMTP服务器:

# dnf install postfix
# systemctl enable postfix
# systemctl start postfix

  第二步:使用curl工具下载并配置GitlabCE版RPM安装包的仓库配置脚本(请确认你的虚拟机能联接网络,注意这只是RPM安装包的仓库配置脚本,并不是真正的安装包)

# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash

  第三步:安装GitlabCE版并指定外部访问的URL地址,这里注意一下:外部访问URL地址使用一个自定义的域名,即使该域名实际上没有也没关系!另外如果你的服务器没有https相关的证书,那就不要用https,直接用http协议!客户端使用时你可以在HOST里做一下映射的,当然,有真实可以的域名就最好了!为什么要用域名来指定外部访问URL地址呢?因为后面你使和Gitlab时会发现这是一个明智的选择!

# EXTERNAL_URL="http://gitlab.xgclassroom.com" dnf install -y gitlab-ce

  到这里你会发现要从第二步中配置的国外站下载多达700M的gitlab-ce包是有多么的艰难,预计耗时估计要10几个钟,惊不惊喜,意不意外!当然,如果你有国际网络VPN就当我没说!!!

  第三步的蜗牛速度是无法忍受的,Ctrl+C 掐断下载过程吧,换其它方法:

自己先从其他地方下载到gitlab-ce的rmp包,再上传到服务器进行安装;使用一个国内镜像地址进行在线安装;

  这里我们讲一下第二种办法,使用国内镜像地址进行在线安装,这里我们选择清华大学提供的镜像服务器,因为它提供了比较全面的使用说明(https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/),现在我们按说明来安装一下GitlabCE版(以下步骤是从承接上面的第二步开始的):

  新的第二步:使用vi或vim新建并编辑yum源配置文件/etc/yum.repos.d/gitlab-ce.repo

# vim /etc/yum.repos.d/gitlab-ce.repo

  填入以下yum源配置信息:

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

  新的第三步:使用yum包管理器安装GitlabCE版

# yum makecache
# yum -y install gitlab-ce

  有没有发现,在“新的第三步”里比原来的第三步少了个东西,啥东西呢?细心的同学肯定发现了,没有配置Gitlab服务器的外部访问地址(EXTERNAL_URL)!不要急,等待Gitlab装完后我们再去配一下就好了!国内镜像还是比较快的,几分钟就下载并装好了,出现骚气的狐狸头图标!

  好了,现在该来补上“新的第三步”里缺失的Gitlab服务器的外部访问地址(EXTERNAL_URL),在哪里配置呢?熟悉Linux服务器各目录作的人应该都能猜到:Gitlab这么全球通用的版本控制软件,配置文件应该会也按照Linux约定放在 /etc 目录中吧!使用cd到/etc目录看一看或用 ls /etc/gitl再tab一下就知道了!

# ls /etc/gitlab/
gitlab.rb

  果然是有一个Gitlab的配置文件!使用cat命令查看一下发现内容不是一般的多,眼睛都会看瞎!那么我们用grep命令先过滤出包含外部访问地址(EXTERNAL_URL)配置内容先:

# grep -i 'EXTERNAL_URL' /etc/gitlab/gitlab.rb
##! For more details on configuring external_url see:
##! EXTERNAL_URL will be used to populate/replace this value.
external_url 'http://gitlab.example.com'
# registry_external_url 'https://registry.example.com'
# pages_external_url "http://pages.example.com/"
# gitlab_pages['artifacts_server_url'] = nil # Defaults to external_url + '/api/v4'
# gitlab_pages['auth_redirect_uri'] = nil # Defaults to projects subdomain of pages_external_url and + '/auth'
# gitlab_pages['gitlab_server'] = nil # Defaults to external_url
# mattermost_external_url 'http://mattermost.example.com'
# When the registry is automatically enabled using the same domain as `external_url`,
# For example, if external_url is the same for two secondaries, you must specify
# If it is blank, it defaults to external_url.

  很好,现在确认与外部访问地址(EXTERNAL_URL)相关的内容就这么多,动手前先用cp命令备份一下/etc/gitlab/gitlab.rb文件,因为后面我们要做字符串直接替换这种高险操作!有备无患!

# cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
# ls /etc/gitlab/
gitlab.rb gitlab.rb.bak

  最后 ls确认备份成功后就可以动手了!

  现在使用sed命令替换/etc/gitlab/gitlab.rb文件中的 http://gitlab.example.com 为http://gitlab.xgclassroom.com

  sed命令字符串替换格式: sed -i "s$要查找的字段$替换成的字段&g" 文件名 ,-i表示是in place edit的意思,即就地编辑更改;参数里开头的s是search的意思,可以换成d表示delete,最后的g是global的意思,即全文搜索;

# sed -i "s#http://gitlab.example.com#http://gitlab.xgclassroom.com#g" /etc/gitlab/gitlab.rb

  完了后,我们再用grep命令先筛选一下与外部访问地址(EXTERNAL_URL)相关的内容:

# grep -i 'EXTERNAL_URL' gitlab.rb
##! For more details on configuring external_url see:
##! EXTERNAL_URL will be used to populate/replace this value.
external_url 'http://gitlab.xgclassroom.com'
# registry_external_url 'https://registry.example.com'
# pages_external_url "http://pages.example.com/"
# gitlab_pages['artifacts_server_url'] = nil # Defaults to external_url + '/api/v4'
# gitlab_pages['auth_redirect_uri'] = nil # Defaults to projects subdomain of pages_external_url and + '/auth'
# gitlab_pages['gitlab_server'] = nil # Defaults to external_url
# mattermost_external_url 'http://mattermost.example.com'
# When the registry is automatically enabled using the same domain as `external_url`,
# For example, if external_url is the same for two secondaries, you must specify
# If it is blank, it defaults to external_url.

  发现替换成功了!但是不要太激动,还要使用gitlab-ctl工具根据修改后的配置文件重新配置gitlab服务实例使配置生效:

# gitlab-ctl reconfigure
...
由于gitlab体系庞大,这将是一个要点时间的过程,等吧!
...

  gitlab服务实例重新配置完成后,可以使用gitlab-ctl工具查看一下gitblab的服务状态:

# gitlab-ctl status
run: alertmanager: (pid 32119) 292s; run: log: (pid 31878) 325s
run: gitaly: (pid 32004) 294s; run: log: (pid 31180) 401s
run: gitlab-exporter: (pid 32013) 293s; run: log: (pid 31778) 342s
run: gitlab-workhorse: (pid 31980) 294s; run: log: (pid 31506) 366s
run: grafana: (pid 32136) 291s; run: log: (pid 31951) 302s
run: logrotate: (pid 31615) 357s; run: log: (pid 31703) 354s
run: nginx: (pid 31548) 363s; run: log: (pid 31568) 360s
run: node-exporter: (pid 31998) 294s; run: log: (pid 31729) 347s
run: postgres-exporter: (pid 32129) 291s; run: log: (pid 31905) 321s
run: postgresql: (pid 31219) 398s; run: log: (pid 31326) 397s
run: prometheus: (pid 32103) 293s; run: log: (pid 31843) 331s
run: puma: (pid 31412) 377s; run: log: (pid 31433) 376s
run: redis: (pid 30999) 410s; run: log: (pid 31038) 407s
run: redis-exporter: (pid 32017) 293s; run: log: (pid 31807) 337s
run: sidekiq: (pid 31436) 375s; run: log: (pid 31454) 371s

  还可以使用以下命令查看一下操作系统内存的使用情况,看看内存是否够gitlab用:

# free -m
       total    used    free   shared buff/cache  available
Mem:      3757    2063     394     82    1299    1376
Swap:     8191     12    8179

  如果上述的结果中Swap分区使用得不是很多,那基本上表示内存是够gitlab服务用的,如果Swap分区占用了很多,那就要考虑给机器增加内存了,虚拟机增加内存很简单就不多说了!

  最后从虚拟机的宿主机浏览器上用IP地址或域名(用域名的话需要先在宿主机的C:\Windows\System32\drivers\etc\hosts配置域名与IP地址映射,所以实际上还是IP)访问一下gitlab服务:

  如上述截图,可以看到能正常访问我自己的搭的Gitlab服务器了,首次使用要求我们更改Gitlab服务的超级管理员root账号的密码,改密之后再登录就可以愉快的玩耍了!

  Gitlab的使用相信IT人应该都比较熟,暂时就不多讲了!除了客户端SSH密钥应用方面要注意一点:不要尝试修改ssh-keygen生成的客户机默认密钥文件名,因为像Git for Windows类的Git客户端工具默认读取的密钥文件名是约定好的(虽然也可以通过配置更改,但很麻烦的)!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • CentOS 服务器安全配置策略

    近期服务器频繁有被暴力破解,大致分析了一下入侵行为,整理了常用的安全策略: 最小的权限+最少的服务=最大的安全 1. 修改ssh默认连接22端口 和 添加防火墙firewalld 通过端口 步骤: 1) 修改ssh的默认端口22: vi /etc/ssh/sshd_config 2)让防火墙通过这个端口 firewall-cmd --state[firewalld是否运行] firewall-cmd --permanent --list-port[查看端口列表] firewall-cmd --p

  • 如何在CentOS8上安装和配置Postfix邮件服务器的方法示例

    Postfix 是一个自由开源的 MTA(邮件传输代理),用于在 Linux 系统上路由或传递电子邮件.在本指南中,你将学习如何在 CentOS 8 上安装和配置 Postfix. 实验室设置: 系统:CentOS 8 服务器 IP 地址:192.168.1.13 主机名:server1.crazytechgeek.info(确保域名指向服务器的 IP) 步骤 1)更新系统 第一步是确保系统软件包是最新的.为此,请按如下所示更新系统: # dnf update 继续之前,还请确保不存在其他 MT

  • centos7.2搭建nginx的web服务器部署uniapp项目

    Panther 从一位小白走来,虽然现在也还是小白,但是我取之于民,不定时将自己所学到的都分享给大家,在上一篇博客中有讲到thingsboard的多设备共显,因为现在处于学习的阶段接触的东西比较多同样也比较杂,希望我的文章可以给大家提供一丢丢的帮助 one 购买腾讯云 https://cloud.tencent.com/ 产品 – 云服务器 – 立即选购 – 快速配置 – 地域 – 入门配置 – centos 7.2 – 购买 事例控制台 https://console.cloud.tencen

  • centos7 服务器基本的安全设置步骤

    关闭ping扫描,虽然没什么卵用 先切换到root echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 1代表关闭 0代表开启 用iptables iptables -I INPUT -p icmp -j DROP 简单介绍下基本的安全设置 一.创建普通用户,禁止root登录,只允许普通用户使用su命令切换到root 这样做的好处是双重密码保护,黑客就算知道了普通用户的密码,如果没有root密码,对服务器上攻击也比较有限 以下是具体做法(需要在roo

  • CentOS8.0 安装配置ftp服务器的实现方法

    CentOS8.0-1905发布后,尝试将FTP服务器迁移至新版本的CentOS中,但是测试过程中,在防火墙中开放ftp服务后,仍然一直无法连接,如果使用lftp或ftp工具测试,会提示[没有到主机的路由]错误.但是关闭防火墙后,ftp服务可以正常访问. 查询相关资料的过程中,有资料说firewalld软件有bug,但是尝试安装http,测试后可以成功,说明防火墙没有问题. 继续查询相关资料,发现chrome.firefox或者Filezilla等多数客户端工具默认使用被动模式(PASV模式)访

  • 详解NodeJs项目 CentOs linux服务器线上部署

    1.安装nodejs 官网仓库下载好NodeJs的Linux包(我用的 node-v9.9.0-linux-x64.tar.gz)到本地然后通过FTP(filezilla)上传到服务器;或者可以直接在服务器终端使用 wget 命令下载. [root@10 /] wget https://nodejs.org/dist/v9.9.0/node-v9.9.0-linux-x64.tar.gz 1.解压 node-v9.9.0-linux-x64.tar.gz 找到你上传的位置目录 [root@10

  • Linux、CentOS下安装zip与unzip指令功能(服务器)

    Linux下安装zip解压功能 Linux服务器上一般默认没是没有有安装zip命令 安装zip指令 apt-get install zip 或 yum install zip 输入zip OK linux安装unzip命令: apt-get install unzip 或 yum install unzip 输入unzip OK!完成! 总结 以上所述是小编给大家介绍的Linux.CentOS下安装zip与unzip指令,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在

  • Centos8搭建本地Web服务器的实现步骤

    1 概述 系统centos8,利用httpd搭建本地web服务器. 2 安装httpd sudo yum install -y httpd 3 启动服务 service httpd start 4 设置开机启动 先查看有没有设置开机启动: systemctl list-unit-files | grep httpd 没有的话设置: chkconfig httpd on 再确认一下: systemctl list-unit-files | grep httpd 5 访问 再浏览器输入内网ip地址(

  • CentOS8.1搭建Gitlab服务器详细教程

    Gitlab和Github的区别就不多说了,一句话来概括就是:Gitlab是给企业私有化部署的Git服务器,Github是互联网在线版的Git服务器! Github对于开源项目建仓是免费使用的,那么Gitlab收不收费呢?分布式版本控制方面的功能Gitlab也是免费使用的,提供了社区版(Gitlab CE)给大家!Gitlab现在可强大了(2020年),已经有自己成套的DevOps落地解决方案(提高生产力的利器),但是这部分功能是在收费的旗舰版/企业版(Gitlab EE)上提供的!就像Gith

  • 搭建SVN服务器详细教程(图文)

    本文介绍了搭建SVN服务器详细教程,分享给大家,也给自己留个笔记,具体如下: 本教程会从最基本的下载安装到上传代码,下载代码这条线来详细讲述如何完成SVN服务器的搭建 下载并安装VisualSVN server 下载并安装TortoiseSVN 导入项目 创建用户组和用户 设置权限 检出项目 下载并安装VisualSVN server 下载VisualSVN server 下载地址:https://www.visualsvn.com/server/download/ 或者参考本站下载地址,快速下

  • Windows10搭建FTP服务器详细教程

    本文为大家分享了Windows10搭建FTP服务器详细教程,供大家参考,具体内容如下 1 为windows开启ftp功能:控制面板–>程序和功能–>打开或关闭Windows功能 选中FTP所有功能 选中结果如下图 2 点击计算机右键——>管理——>服务和应用程序,点击Internet信息服务(IIS)管理 2.1右击连接处网站,点击添加FTP站点 2.2按提示进行步骤操作,设置站点名称和想要公开的路径 2.3绑定IP地址和ssl设置: IP地址填本机地址,端口默认21,ssl是一种

  • 搭建linux服务器详细教程

    Linux服务器的部署,配置,搭建步骤: 1.准备: 1.1.jdk1.8:jdk-8u11-linux-x64.tar.gz tomcat:apache-tomcat-8.0.39-windows-x64.zip 1.2.先安装个1.8的jdk,注意是linux for jdk,要不然可不行. 然后新建一个java文件夹在根目录的(这里的根目录要通过cd 再接/usr/进入,而不是home/xxx,可以通过pwd查看当前所在路径)/usr/下,用来放置解压后的jdk文件,这里因为后缀名是tar

  • window搭建ftp服务器详细教程

    本文为大家分享了window下搭建ftp服务器详细图文教程,供大家参考,具体内容如下 第一部分.搭建 1.创建用于登陆ftp的用户:打开计算机管理程序,依次点击左侧本地用户组–>用户,右侧空白处右击点击“新用户”. 2.填写用于登入FTP服务器的新用户信息,如下图所示 3.控制面板中找到程序和功能,在左侧的菜单点击“打开或关闭Windows功能”,在弹窗的窗口中勾选FTP服务.FTP扩展性.IIS管理控制台,只需要勾选途中框起来的3个即可,确定后等待几分钟即可完成,部分设备可能需要重新启动计算机

  • Windows搭建FTP服务器详细教程

    本文为大家分享了Windows搭建FTP服务器详细图文教程,供大家参考,具体内容如下 前言:搭建之前,先确保你的电脑上:控制面板 >> 程序 >> 启用或关闭windows功能 >> windows功能弹窗里面包含 Internet Information Services 这个选项功能,否则无法搭建,如果没有的话,建议重装系统,因为有些精简版的非正版windows,这个功能被精简掉了. 一.搭建步骤: 1.开启 FTP 服务功能 控制面板 >> 程序 &g

  • 基于CentOS8系统使用Docker搭建Gitlab的详细教程

    目录 一.安装Docker 二.安装GitLab 三.初始化GitLab 一.安装Docker #1.卸载旧版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine #2.下载需要的安装包 sudo yum install -y yum-utils #

  • windows系统搭建WEB服务器详细教程

    本文实例为大家分享了windows系统搭建WEB服务器的具体代码,供大家参考,具体内容如下 1.WEB服务器也称为网页服务器或HTTP服务器 2.WEB服务器使用的协议是HTTP或HIIPS 3.协议及端口号 HTTP协议端口号:TCP 80 HTTPS协议端口号:TCP 443 4.web服务器发布软件 微软:IIS(可以发布web网站和FTP站点) Linux:Apache.LAMP.Tomcat.Nginx 第三方:phpstudy.XAMPP 5.部署web服务器 1)配置静态IP地址

  • windows server 2016 搭建FTP服务器详细教程

    FTP(FileTransferProtocol)文件传输协议,用于Internet上的控制文件的双向传输.同时,它也是一个应用程序.基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件,可用于文件共享(上传和下载). 环境: windows server 2016 两台: 一台配置FTP服务器 一台作为FTP客户端测试服务器是否能正常运行 步骤一:安装FTP服务 FTP服务器:  默认下一步安装即可 步骤2:配置FTP服务器 FTP服务器: FTP端口号默认2

  • windows server 2016搭建FTP服务器图文教程

    本文为大家分享了windows server 2016搭建FTP服务器详细教程,供大家参考,具体内容如下 1.打开服务器管理器 2.安装FTP服务器 3.配置FTP服务器 3.1.添加物理路径 3.2.绑定IP地址和端口 4.打开浏览器输入之前设置的IP地址 ftp://127.0.0.1:2121/ 5.用其它设备打开设置的外网IP地址 ftp://xxx.xxx.xxx.xxx:2121/ 6.用FTP工具上传文件 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

随机推荐