Centos7系统下配置Git服务器(4)--yum安装配置GitLab-CE

0x0 GitLab介绍

gitlab 不用说,大家都知道是做什么的,gitlab 分为 Gitlab Community Edition(gitlab社区版又称gitlab-ce)、Gitlab Enterprise Edition(gitlab企业版又称gitlab-ee);ce和ee的区别在于ce的功能在ee里面都有,而EE里有的功能CE不一定支持。如果要用高级功能,就花钱向gitlab团队采购吧!!

注意:官方推荐最低物理配置是2核,4G,推荐4C 8G

主机规划

名称 主机规划 配置 安装软件 系统
gitlab01 10.0.0.158 4C 8G yum install -y gitlab-ce Centos7.6 1810

0x1 GitLab架构

image

gitlab使用ruby on rails框架编写的一个web界面的代码仓库管理系统,在运行中使用了数据库(postgresql[可以使用其他数据库代替如mysql])、redis、nginx、gitlab-shell等组件来保证gitlab的正常运行。

Gitlab的服务构成

名称 作用 备注
Nginx服务 静态web服务器 比较重要
gitlab-shell 用于处理Git命令和修改authorized keys列表 Ruby
workhorse 轻量级的反向代理服务器 go语言
logrotate 日志文件管理工具
postgresql 数据库
redis 缓存数据库
sidekiq 用于在后台执行队列任务(异步执行) Ruby
unicorn An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。 Ruby Web Server,主要使用Ruby编写

0x2 安装GitLab

Centos7中可以直接通过配置yum源然后使用yum进行一键安装

Step 1 配置yum源

国内可以使用的清华大学的镜像源安装GitLab,相关配置及安装参照:https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/
以下内容写入yum源配置文件:/etc/yum.repos.d/gitlab-ce.repo

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

Step2 安装

gitlab-ce一键安装后可以利用rpm -ql gitlab-ce查询其文件安装路径及相关文件路径,其默认安装路径为/opt/gitlab/、程序数据及配置文件保存路径为/var/opt/gitlab下。

相关默认位置

代码仓库保存位置:/var/opt/gitlab/git-data/repositories/
代码仓库备份位置:/var/opt/gitlab/backups/
postgresql数据及配置目录:/var/opt/gitlab/postgresql/data/
redis默认配置目录:/var/opt/gitlab/redis
gitlab主要配置文件:/etc/gitlab/gitlab.rb

yum makecache
yum install -y gitlab-ce

执行过程如下

[root@gitlab ~]# cd /etc/yum.repos.d/
[root@gitlab yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@gitlab yum.repos.d]# vim gitlab-ce.repo
[root@gitlab yum.repos.d]# yum makecache
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: mirrors.neusoft.edu.cn
 * extras: mirrors.neusoft.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
base                                                                                               | 3.6 kB  00:00:00     
extras                                                                                             | 2.9 kB  00:00:00     
gitlab-ce                                                                                          | 2.9 kB  00:00:00     
updates                                                                                            | 2.9 kB  00:00:00     
(1/10): extras/7/x86_64/other_db                                                                   | 100 kB  00:00:00     
(2/10): gitlab-ce/7/primary_db                                                                     | 3.4 MB  00:00:01     
(3/10): gitlab-ce/7/other_db                                                                       |  32 kB  00:00:00     
(4/10): extras/7/x86_64/filelists_db                                                               | 207 kB  00:00:01     
(5/10): base/7/x86_64/other_db                                                                     | 2.6 MB  00:00:09     
(6/10): updates/7/x86_64/filelists_db                                                              | 3.5 MB  00:00:08     
(7/10): updates/7/x86_64/other_db                                                                  | 387 kB  00:00:00     
(8/10): base/7/x86_64/filelists_db                                                                 | 7.3 MB  00:00:11     
(9/10): updates/7/x86_64/primary_db                                                                | 5.9 MB  00:00:14     
(10/10): gitlab-ce/7/filelists_db                                                                  | 278 MB  00:00:27     
Metadata Cache Created
[root@gitlab yum.repos.d]# yum install -y gitlab-ce
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.neusoft.edu.cn
 * extras: mirrors.neusoft.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package gitlab-ce.x86_64 0:12.6.4-ce.0.el7 will be installed
--> Processing Dependency: policycoreutils-python for package: gitlab-ce-12.6.4-ce.0.el7.x86_64
--> Running transaction check
---> Package policycoreutils-python.x86_64 0:2.5-33.el7 will be installed
--> Processing Dependency: policycoreutils = 2.5-33.el7 for package: policycoreutils-python-2.5-33.el7.x86_64
--> Processing Dependency: setools-libs >= 3.3.8-4 for package: policycoreutils-python-2.5-33.el7.x86_64
--> Processing Dependency: libsemanage-python >= 2.5-14 for package: policycoreutils-python-2.5-33.el7.x86_64
--> Processing Dependency: audit-libs-python >= 2.1.3-4 for package: policycoreutils-python-2.5-33.el7.x86_64
--> Processing Dependency: python-IPy for package: policycoreutils-python-2.5-33.el7.x86_64
--> Processing Dependency: libqpol.so.1(VERS_1.4)(64bit) for package: policycoreutils-python-2.5-33.el7.x86_64
--> Processing Dependency: libqpol.so.1(VERS_1.2)(64bit) for package: policycoreutils-python-2.5-33.el7.x86_64
--> Processing Dependency: libcgroup for package: policycoreutils-python-2.5-33.el7.x86_64
--> Processing Dependency: libapol.so.4(VERS_4.0)(64bit) for package: policycoreutils-python-2.5-33.el7.x86_64
--> Processing Dependency: checkpolicy for package: policycoreutils-python-2.5-33.el7.x86_64
--> Processing Dependency: libqpol.so.1()(64bit) for package: policycoreutils-python-2.5-33.el7.x86_64
--> Processing Dependency: libapol.so.4()(64bit) for package: policycoreutils-python-2.5-33.el7.x86_64
--> Running transaction check
---> Package audit-libs-python.x86_64 0:2.8.5-4.el7 will be installed
--> Processing Dependency: audit-libs(x86-64) = 2.8.5-4.el7 for package: audit-libs-python-2.8.5-4.el7.x86_64
---> Package checkpolicy.x86_64 0:2.5-8.el7 will be installed
---> Package libcgroup.x86_64 0:0.41-21.el7 will be installed
---> Package libsemanage-python.x86_64 0:2.5-14.el7 will be installed
---> Package policycoreutils.x86_64 0:2.5-29.el7 will be updated
---> Package policycoreutils.x86_64 0:2.5-33.el7 will be an update
---> Package python-IPy.noarch 0:0.75-6.el7 will be installed
---> Package setools-libs.x86_64 0:3.3.8-4.el7 will be installed
--> Running transaction check
---> Package audit-libs.x86_64 0:2.8.4-4.el7 will be updated
--> Processing Dependency: audit-libs(x86-64) = 2.8.4-4.el7 for package: audit-2.8.4-4.el7.x86_64
---> Package audit-libs.x86_64 0:2.8.5-4.el7 will be an update
--> Running transaction check
---> Package audit.x86_64 0:2.8.4-4.el7 will be updated
---> Package audit.x86_64 0:2.8.5-4.el7 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================================================================
 Package                              Arch                 Version                          Repository               Size
==========================================================================================================================
Installing:
 gitlab-ce                            x86_64               12.6.4-ce.0.el7                  gitlab-ce               697 M
Installing for dependencies:
 audit-libs-python                    x86_64               2.8.5-4.el7                      base                     76 k
 checkpolicy                          x86_64               2.5-8.el7                        base                    295 k
 libcgroup                            x86_64               0.41-21.el7                      base                     66 k
 libsemanage-python                   x86_64               2.5-14.el7                       base                    113 k
 policycoreutils-python               x86_64               2.5-33.el7                       base                    457 k
 python-IPy                           noarch               0.75-6.el7                       base                     32 k
 setools-libs                         x86_64               3.3.8-4.el7                      base                    620 k
Updating for dependencies:
 audit                                x86_64               2.8.5-4.el7                      base                    256 k
 audit-libs                           x86_64               2.8.5-4.el7                      base                    102 k
 policycoreutils                      x86_64               2.5-33.el7                       base                    916 k

Transaction Summary
==========================================================================================================================
Install  1 Package  (+7 Dependent packages)
Upgrade             ( 3 Dependent packages)

Total download size: 699 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/11): audit-libs-2.8.5-4.el7.x86_64.rpm                                                          | 102 kB  00:00:00     
(2/11): audit-libs-python-2.8.5-4.el7.x86_64.rpm                                                   |  76 kB  00:00:00     
(3/11): libcgroup-0.41-21.el7.x86_64.rpm                                                           |  66 kB  00:00:00     
(4/11): checkpolicy-2.5-8.el7.x86_64.rpm                                                           | 295 kB  00:00:00     
(5/11): libsemanage-python-2.5-14.el7.x86_64.rpm                                                   | 113 kB  00:00:00     
(6/11): policycoreutils-2.5-33.el7.x86_64.rpm                                                      | 916 kB  00:00:00     
(7/11): audit-2.8.5-4.el7.x86_64.rpm                                                               | 256 kB  00:00:00     
(8/11): policycoreutils-python-2.5-33.el7.x86_64.rpm                                               | 457 kB  00:00:00     
(9/11): setools-libs-3.3.8-4.el7.x86_64.rpm                                                        | 620 kB  00:00:00     
(10/11): python-IPy-0.75-6.el7.noarch.rpm                                                          |  32 kB  00:00:01     
(11/11): gitlab-ce-12.6.4-ce.0.el7.x86_64.rpm                                                      | 697 MB  00:01:05     
--------------------------------------------------------------------------------------------------------------------------
Total                                                                                      11 MB/s | 699 MB  00:01:05     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : audit-libs-2.8.5-4.el7.x86_64                                                                         1/14 
  Updating   : policycoreutils-2.5-33.el7.x86_64                                                                     2/14 
  Installing : audit-libs-python-2.8.5-4.el7.x86_64                                                                  3/14 
  Installing : setools-libs-3.3.8-4.el7.x86_64                                                                       4/14 
  Installing : libcgroup-0.41-21.el7.x86_64                                                                          5/14 
  Installing : checkpolicy-2.5-8.el7.x86_64                                                                          6/14 
  Installing : python-IPy-0.75-6.el7.noarch                                                                          7/14 
  Installing : libsemanage-python-2.5-14.el7.x86_64                                                                  8/14 
  Installing : policycoreutils-python-2.5-33.el7.x86_64                                                              9/14 
  Installing : gitlab-ce-12.6.4-ce.0.el7.x86_64                                                                     10/14 
  Updating   : audit-2.8.5-4.el7.x86_64                                                                             11/14 
  Cleanup    : policycoreutils-2.5-29.el7.x86_64                                                                    12/14 
  Cleanup    : audit-2.8.4-4.el7.x86_64                                                                             13/14 
  Cleanup    : audit-libs-2.8.4-4.el7.x86_64                                                                        14/14 
It looks like GitLab has not been configured yet; skipping the upgrade script.

       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.
  


     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/
  

Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
  sudo gitlab-ctl reconfigure

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

  Verifying  : audit-libs-2.8.5-4.el7.x86_64                                                                         1/14 
  Verifying  : policycoreutils-python-2.5-33.el7.x86_64                                                              2/14 
  Verifying  : gitlab-ce-12.6.4-ce.0.el7.x86_64                                                                      3/14 
  Verifying  : audit-2.8.5-4.el7.x86_64                                                                              4/14 
  Verifying  : libsemanage-python-2.5-14.el7.x86_64                                                                  5/14 
  Verifying  : python-IPy-0.75-6.el7.noarch                                                                          6/14 
  Verifying  : checkpolicy-2.5-8.el7.x86_64                                                                          7/14 
  Verifying  : policycoreutils-2.5-33.el7.x86_64                                                                     8/14 
  Verifying  : libcgroup-0.41-21.el7.x86_64                                                                          9/14 
  Verifying  : audit-libs-python-2.8.5-4.el7.x86_64                                                                 10/14 
  Verifying  : setools-libs-3.3.8-4.el7.x86_64                                                                      11/14 
  Verifying  : policycoreutils-2.5-29.el7.x86_64                                                                    12/14 
  Verifying  : audit-libs-2.8.4-4.el7.x86_64                                                                        13/14 
  Verifying  : audit-2.8.4-4.el7.x86_64                                                                             14/14 

Installed:
  gitlab-ce.x86_64 0:12.6.4-ce.0.el7                                                                                      

Dependency Installed:
  audit-libs-python.x86_64 0:2.8.5-4.el7   checkpolicy.x86_64 0:2.5-8.el7               libcgroup.x86_64 0:0.41-21.el7  
  libsemanage-python.x86_64 0:2.5-14.el7   policycoreutils-python.x86_64 0:2.5-33.el7   python-IPy.noarch 0:0.75-6.el7  
  setools-libs.x86_64 0:3.3.8-4.el7       

Dependency Updated:
  audit.x86_64 0:2.8.5-4.el7         audit-libs.x86_64 0:2.8.5-4.el7         policycoreutils.x86_64 0:2.5-33.el7        

Complete!

0x4 gitlab配置修改

编辑vim /etc/gitlab/gitlab.rb

修改gitlab运行外部URL默认的访问地址
# 未修gitlab.rb配置文件中nginx配置时这个配置默认配置gitlab自带的nginx端口
external_url 'http://10.0.0.158:8081'  
#编辑完毕退出 执行以下命令使配置生效
gitlab-ctl reconfigure
#重新启动GitLab
gitlab-ctl restart

【注意】需要注意的是我们安装gitlab的时候注意端口号占用的问题。

0x5 设置开机自启动和防火墙规则

#设置开机自动启动
systemctl enable gitlab-runsvdir.service
#设置禁用开机自动启动
systemctl disable gitlab-runsvdir.service
#添加对应端口
[root@gitlab yum.repos.d]# sudo firewall-cmd --permanent --add-service=http
success
[root@gitlab yum.repos.d]# sudo systemctl reload firewalld
[root@gitlab yum.repos.d]# firewall-cmd --zone=public --add-port=8081/tcp --permanent 
success
[root@gitlab yum.repos.d]# firewall-cmd --reload
success
[root@gitlab yum.repos.d]# firewall-cmd --zone=public --list-ports
8081/tcp 80/tcp

0x6 浏览器中打开地址

Step1 http://10.0.0.158:8081 登陆成功会提示修改管理密码

Step2 用管理员root 和自己修改的密码登陆系统

【注意】如果浏览器输入地址出现502,检查你的端口号是否已经被占用了,修改端口重新编译使配置生效即可,记得添加防火墙规则。

[root@gitlab ~]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:9100          0.0.0.0:*               LISTEN      12432/node_exporter 
tcp        0      0 127.0.0.1:9229          0.0.0.0:*               LISTEN      12319/gitlab-workho 
tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      15579/unicorn maste 
tcp        0      0 127.0.0.1:9168          0.0.0.0:*               LISTEN      12302/puma 4.3.1.gi 
tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN      15598/nginx: master 
tcp        0      0 127.0.0.1:8082          0.0.0.0:*               LISTEN      15539/sidekiq 5.2.7 
tcp        0      0 127.0.0.1:9236          0.0.0.0:*               LISTEN      12290/gitaly        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      9479/sshd           
tcp        0      0 127.0.0.1:3000          0.0.0.0:*               LISTEN      15607/grafana-serve 
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      9630/master         
tcp        0      0 0.0.0.0:8060            0.0.0.0:*               LISTEN      15598/nginx: master 
tcp        0      0 127.0.0.1:9121          0.0.0.0:*               LISTEN      12480/redis_exporte 
tcp        0      0 127.0.0.1:9090          0.0.0.0:*               LISTEN      12463/prometheus    
tcp        0      0 127.0.0.1:9187          0.0.0.0:*               LISTEN      12438/postgres_expo 
tcp        0      0 127.0.0.1:9093          0.0.0.0:*               LISTEN      12269/alertmanager  
tcp6       0      0 ::1:9168                :::*                    LISTEN      12302/puma 4.3.1.gi 
tcp6       0      0 :::22                   :::*                    LISTEN      9479/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      9630/master         
tcp6       0      0 :::9094                 :::*                    LISTEN      12269/alertmanager 

0x7 配置完毕使用GitLab创建项目

主页面上有个4个功能 创建一个项目、创建一个组、添加人员、配置

选择第一个 创建一个新的项目

设置完毕以后,这样就创建了好了项目,并把该项目托管到了我们的GitLab服务器上。

选择右上角蓝色Clone按钮生成git和http方式访问项目的路径
客户端Centos7或Windows中可以通过git clone命令把项目克隆下来。

这里需要注意的是通过git@10.0.0.158:8081/root/helloworld.git 这种方式克隆方式需要配置SSH KEY

[root@gitlab home]# git clone http://10.0.0.158:8081/root/helloworld.git
Cloning into 'helloworld'...
Username for 'http://10.0.0.158:8081': root
Password for 'http://root@10.0.0.158:8081': 
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
[root@gitlab home]# ls
azkaban  helloworld
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容