0


运维学习————GitLab的搭建和使用

官网: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  [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自动跳转

标签: 运维 gitlab linux

本文转载自: https://blog.csdn.net/m0_73376570/article/details/141929635
版权归原作者 乆乄 所有, 如有侵权,请联系我们删除。

“运维学习————GitLab的搭建和使用”的评论:

还没有评论