一、简介
1、概念
将工具整合到单个应用程序中,以实现无与伦比的协作、可见性和开发速度。
极狐GitLab不仅是源代码管理或CI/CD工具,它是一个覆盖完整软件开发生命周期和DevOps的开放式一体化平台
2、 好处
更高效地工作
更快地交付更好的软件
降低风险和成本
3、优势
开源免费:GitLab提供社区免费版本,适合中小型公司使用,大大降低了企业的成本。
强大的版本控制:GitLab基于Git进行版本控制,支持离线同步以及强大的分支管理功能,让团队能够高效地管理代码、分支和合并请求,确保代码的可靠性和可追溯性。
集成化的代码管理平台:GitLab不仅提供了代码仓库功能,还集成了问题跟踪、持续集成/持续部署(CI/CD)、自动化测试等功能,使团队能够在一个平台上完成整个开发周期,提高开发效率。
便捷的GUI操作界面:GitLab提供了友好的图形用户界面(GUI),降低了使用门槛,使得团队成员能够更轻松地进行代码管理和协作。
强大的账户权限管理:GitLab支持精细化的账户权限管理,可以根据团队成员的角色和需求分配不同的权限,确保代码库的安全性和可控性。
高可用性:GitLab支持内置的高可用性(HA)配置,能够在高并发环境下保持服务的稳定运行,满足企业级应用的需求。
可扩展性:GitLab支持丰富的插件和集成,可以与其他工具(如Jenkins、Slack等)进行集成,满足不同团队的需求,并支持自定义功能和扩展。
安全性:GitLab提供了全面的安全性功能,包括代码审查、访问控制、CI/CD安全扫描等,有助于保护代码的安全性和保密性。
等等
二、 下载安装
1、准备工作
服务器建议CPU4个,内存5G以上。否则可能会出现安装或者使用卡顿
#查看Linux系统的版本信息
cat /proc/version
#查看Linux系统发行版信息
cat /etc/redhat-release
上面两个步骤为后面下载什么样的rpm包做准备
#追加本地域名
echo 192.168.170.130 gitlab >>/etc/hosts
#测试
ping gitlab
#安装gitlab依赖软件:
yum install -y curl policycoreutils openssh-server openssh-clients postfix
curl:用于上传或者下载,可以进行数据传输
openssh-server:ssh协议远程登录服务端
openssh-clients:ssh协议远程登录客户端
postfix:邮件传输协议,用于发送邮件
获取GPG密钥,保证下载的gitlab包是由gitlab官方发布的不是被篡改的软件包
GPG密钥:GPG(GNU Privacy Guard)是一种基于OpenPGP标准的加密软件,用于提供文件加密和验证的功能。GPG密钥可以保证软件下载的完整性和安全性。通过使用该公钥,你可以验证下载的软件包是否来自GitLab官方,从而确保GitLab安装的安全。
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#开机自启postfix并现在立即启动
service postfix start 或者 systemctl start postfix #启动服务
systemctl enable postfix #设置开启启动
systemctl enable postfix --now #相当于上面两句
#查看状态
service postfix status
2、下载安装
下载地址:https://packages.gitlab.com/gitlab/gitlab-ce
#进入下载目录
cd /software
#下载(注意证书过期,需要根据提示加上--no-check-certificate)
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-16.5.8-ce.0.el7.x86_64.rpm/download.rpm --no-check-certificate
#安装gitlab
rpm -ivh gitlab-ce-16.5.8-ce.0.el7.x86_64.rpm
安装成功!!!
3、配置
#配置访问IP及端口:
vim /etc/gitlab/gitlab.rb
#确保防火墙开放并开放上面端口
防火墙操作:
systemctl status firewalld
systemctl enable --now firewalld
systemctl status firewalld
#添加请求服务
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
#开放端口
firewall-cmd --zone=public --add-port=28080/tcp --permanent
#重新加载防火墙
systemctl reload firewalld
#查看是否开放成功
firewall-cmd --zone=public --query-port=28080/tcp
#查看结果
firewall-cmd --zone=public --list-all
#gitlab重新加载配置(重新加载时间可能稍微长点,占用内存可能也很多,耐心等待)
gitlab-ctl reconfigure
若结果显示“ruby_block[supervise_redis_sleep] action run”,则会一直卡无法往下进行,这时需要按住“CTRL+C”强制结束,然后运行命令“systemctl restart gitlab-runsvdir”,最后再次执行命令“gitlab-ctl reconfigure
#重启gitlab组件
gitlab-ctl restart
#若结果显示“ok: run”,则说明配置文件修改完成。
三、常用命令
gitlab-ctl start # 启动所有GitLab组件
gitlab-ctl stop # 停止所有GitLab组件
gitlab-ctl restart # 重启所有GitLab组件
gitlab-ctl status # 查看服务状态
gitlab-ctl reconfigure # 重新加载配置
gitlab-rake gitlab:check SANITIZE=true --trace # 检查GitLab SANITIZE=消毒,净化
gitlab-ctl tail # 查看日志(相当于tail -F ...)
#GitLab的守护进程关闭和重启
# 备注:GitLab的守护进程会默认开启nginx
命令:
gitlab-ctl status nginx 查看状态
gitlab-ctl stop nginx
gitlab-ctl start nginx
gitlab-ctl restart nginx
# 释放资源,关闭GitLab
命令:gitlab-ctl stop
2)服务器重启或者GitLab意外停止,执行命令“gitlab-ctl start”。
若结果显示“fail: sidekiq: runsv not running”等,则说明GitLab不能启动。可以使用下面命令来解决这个问题:
systemctl start gitlab-runsvdir
#runsvdir 是 runit 的一个组件,它负责监视一个或多个服务目录(这些目录通常包含服务的配置文件和脚本),并启动、停止和监视这些服务。runit 是一个轻量级的 Unix 初始化系统和服务管理器。
gitlab-ctl restart
四、GitLab的使用
1、解决无法访问
浏览器输入:http://192.168.37.155:28080/
发现不可以访问(需要开放iptables),如果可以访问,下面就不执行:
cd /etc/sysconfig
ls -l
结果显示“ip6tables-config”和“iptables-config”,但是没有查看到iptables文件。
yum install iptables-services -y
启动iptables
systemctl start iptables
查看状态:
systemctl status iptables
在iptables中配置开放GitLab的端口号:
vim /etc/sysconfig/iptables
添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 18080 -j ACCEPT
重启防火墙:
service iptables restart
再次刷新浏览器地址
2、修改密码
登录GitLab的界面,第一次登录使用的用户名为 root,而密码在文件/etc/gitlab/initial_root_password中(密码不会含空格),且会在 24 小时后自动被删除。然后修改密码即可。
cat /etc/gitlab/initial_root_password
登录,先修改一下中文语言
保存,刷新页面就可以了
然后就是修改密码,点击保存之后,就会自动退出,重新使用新密码登录即可
3、gitlab结合linux的使用
1、使用用户名和密码操作
#安装git
yum install git -y
#创建linux环境下的本地仓库
mkdir my-repo && cd my-repo
#拉取代码
git clone http://192.168.170.110:18080/root/qy176_project_20240904_1.git
#输入GitLab的用户名和密码: root xxxxxx
每次操作都让输入用户名和密码,可以使用ssh秘钥方式,避免每次输入用户明和密码(配置一次ssh秘钥,后面一直使用)
2、使用ssh秘钥操作
#安装git
yum install git -y
#生成密钥文件
ssh-keygen 回车3次
#显示生成的秘钥
cat /root/.ssh/id_rsa.pub
记住一定要使用SSH克隆
#在安装了git的linux下操作:
cd ../
mkdir my-repo1 && cd my-repo1/
#本机可以直接克隆(本机有公钥了)
git clone [email protected]:root/qy176_project_20240904_2.git
#多次克隆,测试秘钥效果。
mkdir my-repo2 && cd my-repo2/
git clone [email protected]:root/qy176_project_20240904_2.git
mkdir my-repo3 && cd my-repo3/
git clone [email protected]:root/qy176_project_20240904_2.git
4、卸载GitLab
如果gitlab安装失败,那可以卸载gitlab并重装。注意:gitlab一定要卸载干净,否则会有不少麻烦。
第一步,停服务。
命令: gitlab-ctl stop
第二步,卸载gitlab。(需确认gitlab是ce版本还是ee版本)
命令: rpm -e gitlab-ce
第三步,杀掉gitlab守护进程。(带有opt/gitlab/service log)
命令:ps -ef|grep gitlab
sudo kill -9 [PID]
第四步,删除磁盘文件。
命令: find / -name gitlab |xargs rm -rf
若结果提示“permission deny”,则手动逐层删除即可。
第五步,下载的gitlab软件包也删除。
5、gitlab结合windows使用
1、原理图
2、在gitlab创建项目
3、克隆项目到本地
输入正确的用户名和密码
4、进入项目(本地仓库),创建目录和文件
看到.git说明是仓库
git status
mkdir -p src/main/java/com/aaa/ssm/controller
mkdir -p src/main/resources
vim src/main/java/com/aaa/ssm/controller/TestControler
111
vim src/main/resources/application.properties
aaa
git status
显示红色的src
5、添加本地文件到缓存,提交到本地仓库
git add * 提交所有文件
git status
git commit -m '第一次提交项目'
设置用户名和邮箱
git config --global user.name "百度红尘"
git config --global user.email "123@qq.com"
再次提交:
git commit -m '第一次提交项目'
git status
6、推送到远程gitlab,查看
让远程地址和用户origin关联
git remote add origin http://192.168.170.110:18080/root/qy176_project_20240904_1.git
因为仓库是克隆下来的,地址和用户已经绑定了,提示:remote origin already exists.
确认main分支
git branch -M main
推送
git push -uf origin main
-u set-upstream 使用流方式上传
-f force 强制的
刷新gitlab页面:
后面如果说,新增了文件或者修改了文件或者是删除了文件,都会变为红色,循环执行上面步骤,达到代码同步结果
7、在D盘克隆项目,新加文件,添加,提交 推送
git clone http://192.168.170.110:18080/root/qy176_project_20240904_1.git
cd qy176_project_20240904_1/
vim src/main/java/com/aaa/ssm/controller/TestAController
123
git status
git add *
git status
git commit -m '添加了一个控制器'
git status
git push -uf origin main
8、在桌面的my-repo中的项目中pull拉取 ,达到同步代码的目的
git pull http://192.168.170.110:18080/root/qy176_project_20240904_1.git
ls src/main/java/com/aaa/ssm/controller/
5、gitlab结合idea开发工具使用
第一次的话可能需要输入Token,而不是使用用户名和密码,点击Generate自动跳转
版权归原作者 乆乄 所有, 如有侵权,请联系我们删除。