环境:
- 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 用户xiaoming
和xiaohong
注册账户
重新打开网页后,注册小明账号,密码为: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
的身份),也可以成功了:
小红新建文件testfile2.txt
:
xiaohong
提交并推送:
不过当我们提交时,发现如下报错:
上面的提示很明显,就是不允许账户xiaohong
提交到master
分支上(master受保护)。