参考放在最前:
gitlab官网:https://about.gitlab.com/

  1. 找到最上面的Install GitLab
  2. 根据自己的系统版本选择相对应的,这里选择CentOs 8,这里提示内存至少4GB
  3. 根据上面的提示,看到最终要安装的是gitlab-ee,这是一个30 days限免的收费版本
  4. 翻到最后,发现一个CE OR EE,进去找社区版本,选择社区版本
  5. 选择CE版本之后,就可以进行安装了,这里我用的是阿里云的2核4G云服务器

安装之旅:

  1. 安装和启用policycoreutils、openssh-server和openssh-clients组件,并将它们开放防火墙(不要忘了reload防火墙),用root用户可以不需要sudo
# 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
  1. 使用curl工具下载并配置Gitlab CE版RPM安装包的仓库配置脚本(请确认你的虚拟机能联接网络,注意这只是RPM安装包的仓库配置脚本,并不是真正的安装包)
# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
  1. 安装Gitlab CE版并指定外部访问的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 掐断下载过程吧,换其它方法:

  1. 自己先从其他地方下载到gitlab-ce的rmp包,再上传到服务器进行安装;
  2. 使用一个国内镜像地址进行在线安装;
    这里我们讲一下第二种办法,使用国内镜像地址进行在线安装,这里我们选择清华大学提供的镜像服务器,因为它提供了比较全面的使用说明(https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/),现在我们按说明来安装一下Gitlab CE版(以下步骤是从承接上面的第二步开始的):
    这里赋镜像源:https://www.bilibili.com/read/cv6825589 若发生失效情况,自行百度吧
      新的第二步:使用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包管理器安装Gitlab CE版

# yum makecache
# yum -y install gitlab-ce

在yum和install的过程中,非常需要网速,这一步执行了很长时间之后才得以成功
甚至都想用浏览器下载一个,传上去之后再去install了

有没有发现,在“新的第三步”里比原来的第三步少了个东西,啥东西呢?细心的同学肯定发现了,没有配置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 “sgitlab 安装 centos6 centos gitlab搭建_gitlab 安装 centos6替换成的字段&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)相关的内容:
cat /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用:

gitlab 安装 centos6 centos gitlab搭建_gitlab 安装 centos6_02


如果上述的结果中Swap分区使用得不是很多,那基本上表示内存是够gitlab服务用的,如果Swap分区占用了很多,那就要考虑给机器增加内存了,虚拟机增加内存很简单就不多说了!最后从虚拟机的宿主机浏览器上用IP地址或域名(用域名的话需要先在宿主机的C:\Windows\System32\drivers\etc\hosts配置域名与IP地址映射,所以实际上还是IP)访问一下gitlab服务:

 

gitlab 安装 centos6 centos gitlab搭建_服务器_03