GitLab是一种基于Web的Git仓库管理工具,它允许您在组织或个人级别上创建和管理Git仓库,以便在一个中心位置上执行代码管理和协作工作。GitLab提供了强大的功能,如代码审查、问题跟踪、CI/CD、容器注册表、Wiki和持续集成等。
以下是GitLab的一些主要功能:
-
代码管理 – GitLab是一个Git仓库管理工具。您可以在GitLab中创建和管理Git仓库,将代码保存到其中,并追踪更改。
-
问题跟踪 – GitLab的问题跟踪功能使您能够记录问题、缺陷和功能请求,并分配给团队成员进行解决。
-
代码审查 – GitLab允许您在代码中进行合并请求,以便其他人可以审核和评论您的代码。
-
持续集成 – GitLab提供了一个内置的CI/CD工具,它允许您自动化构建、测试和部署过程。
-
容器注册表 – GitLab集成了一个容器注册表,您可以使用它来存储和分享Docker映像。
-
代码片段 – GitLab允许您创建和分享代码片段,以便其他人可以使用和修改它们。
-
Wiki – GitLab的Wiki允许您创建和共享文档,并让您的团队成员进行编辑和更新。
-
权限控制 – GitLab提供了细粒度的权限控制,您可以控制用户、组和项目的访问权限。
------安装配置gitlab
实验机器: 192.168.231.238 规格 :8核16G (规格给大点) |
# 安装依赖,并启动ssh、防火墙开启相应端口、postfix
[root@gitlab ~]# yum install -y curl policycoreutils-python openssh-server perl
该文章配备了rpm包 直接下载下来上传上到服务器,直接install即可
rz
# 安装完成后会直接启动
[root@gitlab ~]# yum install gitlab-jh-16.0.3-jh.0.el7.x86_64.rpm
-----启动成功的标识
初始化
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
将external_url 'http://192.168.249.156' 改成自己的ip,公司内有域名写成域名即可
初始化,初始化会花费较长时间,请耐心等待
[root@gitlab ~]# gitlab-ctl reconfigure
初始化过程
查看状态
[root@localhost ~]# gitlab-ctl status
run: alertmanager: (pid 1457) 154s; run: log: (pid 1456) 154s
run: gitaly: (pid 1454) 154s; run: log: (pid 1433) 154s
run: gitlab-exporter: (pid 1448) 154s; run: log: (pid 1447) 154s
run: gitlab-kas: (pid 1443) 154s; run: log: (pid 1424) 154s
run: gitlab-workhorse: (pid 1440) 154s; run: log: (pid 1438) 154s
run: logrotate: (pid 1450) 154s; run: log: (pid 1429) 154s
run: nginx: (pid 1455) 154s; run: log: (pid 1434) 154s
run: node-exporter: (pid 1441) 154s; run: log: (pid 1439) 154s
run: postgres-exporter: (pid 1459) 154s; run: log: (pid 1458) 154s
run: postgresql: (pid 1425) 154s; run: log: (pid 1422) 154s
run: prometheus: (pid 1453) 154s; run: log: (pid 1451) 154s
run: puma: (pid 1445) 154s; run: log: (pid 1444) 154s
run: redis: (pid 1432) 154s; run: log: (pid 1430) 154s
run: redis-exporter: (pid 1452) 154s; run: log: (pid 1446) 154s
run: sidekiq: (pid 1437) 154s; run: log: (pid 1435) 154s
查看端口
使用浏览器访问,进行web界面操作
直接输入IP即可
用户为root
密码存放在 /etc/gitlab/initial_root_password 文件中,该文件会在24小时后删除
查找登录所需的密码
cat /etc/gitlab/initial_root_password
重新登录gitlab网页
创建组
组名为plat-sp
去掉用户的自动注册功能
保存刷新即可
添加密钥
在服务器上创建ssh密钥 使用ssh-ketgen 命令
[root@gitlab ~]# ssh-keygen
一路回车即可
查看密钥文件
全部复制
再次打开网页
保存即可
修改密码
设置中文
保存刷新即可
创建用户
邮箱配置
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
找到第84行 将注释打开,改成自己的邮箱以及授权码
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "newrain_wang@163.com"
gitlab_rails['smtp_password'] = "UWYNCPQOBQFCDLIW"
gitlab_rails['smtp_domain'] = "smtp.163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = false
gitlab_rails['gitlab_email_from'] = 'newrain_wang@163.com'
重载配置,启动服务
[root@gitlab ]# gitlab-ctl reconfigure
在web端创建一个用户
保存以后,在邮箱收到邮件
改密码
数据备份与恢复
本地有一个项目
在命令行执行备份
[root@gitlab ~]# cd /var/opt/gitlab/backups/
gitlab-rake gitlab:backup:create
在web端删除项目
在命令行停掉数据连接服务
[root@gitlab ]# gitlab-ctl stop unicorn
[root@gitlab ]# gitlab-ctl stop sidekiq
执行下面的命令进行恢复:后面再输入两次yes就完成恢复了。
执行完备份命令会在backup下生成文件
[root@gitlab backups]# ls
1700553222_2023_11_21_16.5.2-jh_gitlab_backup.tar
恢复
[root@gitlab backups]# gitlab-rake gitlab:backup:restore BACKUP=1700553222_2023_11_21_16.5.2-jh
复制到jh即可
恢复完成后,启动刚刚的两个服务,或者重启所有服务,再打开浏览器进行访问,发现数据和之前的一致:
[root@gitlab backups]# gitlab-ctl start unicorn
[root@gitlab backups]# gitlab-ctl start sidekiq
或
[root@gitlab backups]# gitlab-ctl restart
总之,GitLab是一个功能强大的工具,可以帮助您更轻松地进行团队协作和代码管理。它是开源的,并且有两个版本可供选择:社区版和企业版。