环境:

  • centos8最小化安装-虚拟机
  • xshell5
  • winscp

参照:

  • 优秀博文:《GitLab的安装及使用教程》

一、安装gitlab

1.1 新建文件/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

注意:这个过程可以使用winscp操作,比较简单。

新建完成后,如下:

 

1.2 更新本地yum缓存

sudo yum makecache

1.3 安装GitLab社区版

在安装之前,我们可以先用yum命令查看gitlab的版本信息:

这次我们安装最新的,即:13.4.1这个版本(yum install -y gitlab-ce.x86_64):

[root@localhost ~]# yum install -y gitlab-ce.x86_64
上次元数据过期检查:0:02:12 前,执行于 2020年09月26日 星期六 15时34分41秒。
依赖关系解决。
=============================================================================================================================================================================================
 软件包                                                 架构                             版本                                                      仓库                                 大小
=============================================================================================================================================================================================
安装:
 gitlab-ce                                              x86_64                           13.4.1-ce.0.el8                                           gitlab-ce                           776 M
安装依赖关系:
 checkpolicy                                            x86_64                           2.9-1.el8                                                 BaseOS                              348 k
 policycoreutils-python-utils                           noarch                           2.9-9.el8                                                 BaseOS                              251 k
 python3-audit                                          x86_64                           3.0-0.17.20191104git1c2f876.el8                           BaseOS                               86 k
 python3-libsemanage                                    x86_64                           2.9-2.el8                                                 BaseOS                              127 k
 python3-policycoreutils                                noarch                           2.9-9.el8                                                 BaseOS                              2.2 M
 python3-setools                                        x86_64                           4.2.2-2.el8                                               BaseOS                              601 k

事务概要
=============================================================================================================================================================================================
安装  7 软件包

总下载:780 M
安装大小:1.7 G
下载软件包:
(1/7): python3-audit-3.0-0.17.20191104git1c2f876.el8.x86_64.rpm                                                                                              796 kB/s |  86 kB     00:00    
(2/7): policycoreutils-python-utils-2.9-9.el8.noarch.rpm                                                                                                     1.6 MB/s | 251 kB     00:00    
(3/7): checkpolicy-2.9-1.el8.x86_64.rpm                                                                                                                      2.1 MB/s | 348 kB     00:00    
(4/7): python3-libsemanage-2.9-2.el8.x86_64.rpm                                                                                                              2.1 MB/s | 127 kB     00:00    
(5/7): python3-setools-4.2.2-2.el8.x86_64.rpm                                                                                                                4.8 MB/s | 601 kB     00:00    
(6/7): python3-policycoreutils-2.9-9.el8.noarch.rpm                                                                                                          8.0 MB/s | 2.2 MB     00:00    
(7/7): gitlab-ce-13.4.1-ce.0.el8.x86_64.rpm                                                                                                                  9.7 MB/s | 776 MB     01:19    
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                                         9.7 MB/s | 780 MB     01:20     
警告:/var/cache/dnf/BaseOS-929b586ef1f72f69/packages/checkpolicy-2.9-1.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
CentOS-8 - Base                                                                                                                                              1.6 MB/s | 1.6 kB     00:00    
导入 GPG 公钥 0x8483C65D:
 Userid: "CentOS (CentOS Official Signing Key) <security@centos.org>"
 指纹: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 来自: /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
导入公钥成功
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                                                                                                              1/1 
  安装    : python3-setools-4.2.2-2.el8.x86_64                                                                                                                                           1/7 
  安装    : python3-libsemanage-2.9-2.el8.x86_64                                                                                                                                         2/7 
  安装    : python3-audit-3.0-0.17.20191104git1c2f876.el8.x86_64                                                                                                                         3/7 
  安装    : checkpolicy-2.9-1.el8.x86_64                                                                                                                                                 4/7 
  安装    : python3-policycoreutils-2.9-9.el8.noarch                                                                                                                                     5/7 
  安装    : policycoreutils-python-utils-2.9-9.el8.noarch                                                                                                                                6/7 
  运行脚本: gitlab-ce-13.4.1-ce.0.el8.x86_64                                                                                                                                             7/7 
  安装    : gitlab-ce-13.4.1-ce.0.el8.x86_64                                                                                                                                             7/7 
  运行脚本: gitlab-ce-13.4.1-ce.0.el8.x86_64                                                                                                                                             7/7 
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


  验证    : checkpolicy-2.9-1.el8.x86_64                                                                                                                                                 1/7 
  验证    : policycoreutils-python-utils-2.9-9.el8.noarch                                                                                                                                2/7 
  验证    : python3-audit-3.0-0.17.20191104git1c2f876.el8.x86_64                                                                                                                         3/7 
  验证    : python3-libsemanage-2.9-2.el8.x86_64                                                                                                                                         4/7 
  验证    : python3-policycoreutils-2.9-9.el8.noarch                                                                                                                                     5/7 
  验证    : python3-setools-4.2.2-2.el8.x86_64                                                                                                                                           6/7 
  验证    : gitlab-ce-13.4.1-ce.0.el8.x86_64                                                                                                                                             7/7 

已安装:
  checkpolicy-2.9-1.el8.x86_64           gitlab-ce-13.4.1-ce.0.el8.x86_64           policycoreutils-python-utils-2.9-9.el8.noarch   python3-audit-3.0-0.17.20191104git1c2f876.el8.x86_64  
  python3-libsemanage-2.9-2.el8.x86_64   python3-policycoreutils-2.9-9.el8.noarch   python3-setools-4.2.2-2.el8.x86_64             

完毕!

1.4 配置gitlab

[root@localhost ~]# sudo gitlab-ctl reconfigure
...
...
...
Recipe: monitoring::grafana
  * runit_service[grafana] action restart (up to date)

Running handlers:
Running handlers complete
Chef Infra Client finished, 567/1530 resources updated in 03 minutes 15 seconds
gitlab Reconfigured!

1.5 启动gitlab

sudo gitlab-ctl start

[root@localhost ~]# sudo gitlab-ctl start 
ok: run: alertmanager: (pid 11796) 187s
ok: run: gitaly: (pid 11699) 188s
ok: run: gitlab-exporter: (pid 11686) 189s
ok: run: gitlab-workhorse: (pid 11660) 190s
ok: run: grafana: (pid 11815) 186s
ok: run: logrotate: (pid 11099) 276s
ok: run: nginx: (pid 11058) 282s
ok: run: node-exporter: (pid 11672) 189s
ok: run: postgres-exporter: (pid 11807) 187s
ok: run: postgresql: (pid 10730) 331s
ok: run: prometheus: (pid 11707) 188s
ok: run: puma: (pid 10935) 300s
ok: run: redis: (pid 10513) 343s
ok: run: redis-exporter: (pid 11690) 189s
ok: run: sidekiq: (pid 10961) 294s

 

1.6 测试访问gitlab

首先,关闭防火墙( linux关闭防火墙)

systemctl stop firewalld.service

换另一台机器,浏览器输入虚拟机地址:http://192.168.3.42

因为初次登录时,需要修改密码,这里填写为:12345678(注意:安装后默认就一个用户root,这里你修改的密码也是root用户的)

修改完成后,我们可以使用root/12345678登录:

登录后如下:

1.7 gitlab常用命令

sudo gitlab-ctl start    # 启动所有 gitlab 组件;
sudo gitlab-ctl stop        # 停止所有 gitlab 组件;
sudo gitlab-ctl restart        # 重启所有 gitlab 组件;
sudo gitlab-ctl status        # 查看服务状态;
sudo gitlab-ctl reconfigure        # 启动服务;
sudo vim /etc/gitlab/gitlab.rb        # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab;
sudo gitlab-ctl tail        # 查看日志;

 

二、测试并使用gitlab

上一步,我们安装并使用root账户登录了gitlab,这里我们测试一下一般的使用场景。

2.1 用户xiaomingxiaohong注册账户

重新打开网页后,注册小明账号,密码为:12345678

注册后,使用默认的开发者角色即可,如下:

注册完成后如下:

同理,xiaohong的注册信息如下:

用户名:xiaohong

全名:xiaohong_fullname

密码:12345678

邮箱:973217835@qq.com注册完成后如下:

2.2 xiaoming创建工程

使用账号xiaoming登录,登录后创建工程:testprojectxiaoming,具体创建页面如下:

创建后如下:

从上图中可以看到,gitlab提示我们添加一个ssh key,那么我们就添加一个上去:

回到安装gitlab的虚拟机上,执行命令ssh-keygen

转到/root/.ssh/目录下,查看生成的私钥和公钥:

将id_rsa.pub文件的内容拷贝到新创建的工程下:

添加完成后如下:

2.3 换到window环境下,克隆这个项目

打开这个项目:

首先克隆这个项目地址,然后将域名改成ip(192.168.3.42),最终在克隆如下:

 

新添加一个文件并上传:

提交并推送:

现在在浏览器观察这个工程如下:

2.4 测试小红是否能访问这个工程

还是在当前window这个环境下操作,我们需要先清楚之前的认证信息(移除xiaoming):

现在我们重新clone项目:

在上面弹框提示中,我们输入xiaohong/12345678后,发现,gitlab提示找不到这个工程,其实就是账户xiaohong没有权限,如下:

2.5 将小红拉入这个工程

使用账户xiaoming登录浏览器管理端,在Members菜单下邀请小红进入该工程,如下:

邀请完成后,我们使用账户xiaohong登录到浏览器管理端,可以看到这个项目:

此时,我们使用git客户端克隆(以账户xiaohong的身份),也可以成功了: