运维学习————GitLab的搭建和使用
目录
一、简介
1、概念
2、 好处
3、优势
二、 下载安装
1、准备工作
2、下载安装
3、配置
三、常用命令
四、GitLab的使用
1、解决无法访问
编辑2、修改密码
3、gitlab结合linux的使用
1、使用用户名和密码操作
2、使用ssh秘钥操作
4、卸载GitLab
5、gitlab结合windows使用
1、原理图
2、在gitlab创建项目
3、克隆项目到本地
4、进入项目(本地仓库),创建目录和文件
5、添加本地文件到缓存,提交到本地仓库
编辑 6、推送到远程gitlab,查看
7、在D盘克隆项目,新加文件,添加,提交 推送
8、在桌面的my-repo中的项目中pull拉取 ,达到同步代码的目的
5、gitlab结合idea开发工具使用
官网:https://gitlab.cn/
一、简介
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 git@192.168.170.110:root/qy176_project_20240904_2.git
#多次克隆,测试秘钥效果。
mkdir my-repo2 && cd my-repo2/
git clone git@192.168.170.110:root/qy176_project_20240904_2.git
mkdir my-repo3 && cd my-repo3/
git clone git@192.168.170.110: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自动跳转