【GitLab】下载搭建

一、下载安装

1、准备工作

服务器建议CPU4个,内存5G以上。否则可能会出现安装或者使用卡顿

#查看Linux系统的版本信息
cat /proc/version
#查看Linux系统发行版信息
cat /etc/redhat-release

在这里插入图片描述
上面两个步骤为后面下载什么样的rpm包做准备

#追加本地域名 ping通之后需要重启,不然会影响后续启动服务出现主机名为数字的错误
echo 192.168.31.129 gitlab >>/etc/hosts
#测试 
ping gitlab
#安装gitlab依赖软件:
dnf 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-centosofficial
systemctl start postfix ## 开启服务
systemctl enable postfix  ## 设置开机启动
systemctl enable postfix --now ## 以上2行合并
systemctl status postfix ## 检查postfix服务状态

在这里插入图片描述

2、下载安装

下载地址:https://packages.gitlab.com/gitlab/gitlab-ce
在这里插入图片描述
在这里插入图片描述

# 进入下载目录
mkfie /software
cd /software
# 下载(注意证书过期,需要根据提示加上--no-check-certificate)
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-17.3.6-ce.0.el8.x86_64.rpm/download.rpm --no-check-certificate
# 安装gitlab
rpm -ivh gitlab-ce-17.3.6-ce.0.el8.x86_64.rpm 

在这里插入图片描述
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/47231156eb0e4efc9003fec746aa2a42.png

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安装目录

gitlab组件日志路径:/var/log/gitlab
gitlab配置路径:/etc/gitlab/  路径下有gitlab.rb配置文件
应用代码和组件依赖程序:/opt/gitlab
各个组件存储路径: /var/opt/gitlab/
仓库默认存储路径   /var/opt/gitlab/git-data/repositories
版本文件备份路径:/var/opt/gitlab/backups/
nginx安装路径:/var/opt/gitlab/nginx/
redis安装路径:/var/opt/gitlab/redis

三、常用命令

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-ctl tail gitlab-rails
# 拉取/var/log/gitlab下子目录的日志
gitlab-ctl tail nginx/gitlab_error.log
# 拉取某个指定的日志文件
# 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.31.129: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 28080 -j ACCEPT
重启防火墙:
service iptables restart
再次刷新浏览器地址

在这里插入图片描述

2、修改密码

登录GitLab的界面,第一次登录使用的用户名为 root,而密码在文件/etc/gitlab/initial_root_password中(密码不会含空格),且会在 24 小时后自动被删除。然后修改密码即可。

cat /etc/gitlab/initial_root_password

在这里插入图片描述
登录,先修改一下中文语言
在这里插入图片描述
在这里插入图片描述
保存,刷新页面就可以了
然后就是修改密码,点击保存之后,就会自动退出,重新使用新密码登录即可

3、配置默认访问密码

cd /opt/gitlab/bin/  # 切换目录
gitlab-rails console -e production # 运行命令,进入初始化密码

irb(main):001:0>后面通过u=User.where(id:1).first来查找与切换账号(User.all 可以查看所有用户)

u=User.where(id:1).first
u.password='kgj101103.'
u.password_confirmation='kgj101103.'
u.save!
exit

在这里插入图片描述

五、gitlab图形化操作

1、关闭自动注册

在企业生产环境中,我们一般由项目负责人负责创建用户并分配权限,一般禁止员工私自注册用户,以防给项目开发工作带来安全性上的风险。为了避免员工自动注册,我们一般会禁止Gitlab的自动注册功能。在Gitlab的主菜单上,选择Menu——Admin,如下所示
在这里插入图片描述
点击保存,就没有注册功能了
在这里插入图片描述

2、gitlab免密登录

Gitlab的登录免密验证,配置完成后,可以使得我们的Gitlab自动执行Git命令而无需登录,对于脚本的编写以及其他项目**(如Jenkins)的运用这一步是必须的**。
首先,在想要进行验证的设备上执行命令:

ssh-keygen

在这里插入图片描述
完成上述配置后,可以生成本设备的公私钥对,执行命令:
可以查看本设备的公钥,如下所示:

cat /root/.ssh/id_rsa.pub 

在这里插入图片描述
我们将该公钥复制下来,之后,我们打开Gitlab,点击右上角的用户图标,在弹出的选择框中选择Edit Profile,然后点击左边的SSH Keys,如下所示:
在这里插入图片描述
在这里插入图片描述

3、gitlab添加邮箱设置

3.1、开启SMTP功能

登陆邮箱==》设置==》账户==》POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务==》开启SMTP服务==》接收验证

3.2、配置gitlab.rb文件

修改gitlab配置
Vim /etc/gitlab/gitlab.rb

smtp_password的值为第三方授权密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

 #更新配置文件
gitlab-ctl reconfigure
gitlab-ctl restart

在这里插入图片描述

3.3、验证邮箱发送

gitlab-rails console
Notify.test_email('XXX@163.com','gitlab','hello world').deliver_n
ow

在这里插入图片描述

六、git命令行操作

在这里插入图片描述

1、gitlab结合Windows使用

远程拉取项目

git clone http://192.168.31.129:28080/my_own/my_api.git

在这里插入图片描述

新建分支

# 查看当前所在分支
git branch

在这里插入图片描述

# 创建新分支
git branch sit
# 切换分支
git checnkout sit

在这里插入图片描述

# 查看状态(跟源文件有出入的文件)
git status

在这里插入图片描述

# 提交到分支
git push -u origin sit

在这里插入图片描述
检查分支
在这里插入图片描述

在命令行或终端中使用下面的命令可以设置git自己的名字和电子邮件。这是因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。

git config --global user.name "root"
git config --global user.email "admin@example.com"
# 查看配置
git config --list

上传代码到仓库

# 初始化git
git init
# 添加要提交的项目
git add test.txt
# 提交到本地仓库
git commit -m "测试代码";
# 将项目推送到gitlab端
git push -u origin sit

# 将本地git和服务器上的连接
git remote add origin http://192.168.31.129:28080/my_own/my_api.git

# 出现报错:
# fatal: 远程 origin 已经存在 
# 删除远程配置 
git remote rm origin 
# 重新添加 
git remote add origin http://192.168.31.129:28080/my_own/my_api.git

在这里插入图片描述
在这里插入图片描述

2、gitlab结合linux使用

3.1、使用用户名和密码操作

# 安装git
yum install git -y
# 创建linux环境下的本地仓库
mkdir my-repo  &&  cd  my-repo
# 拉取代码
git clone http://192.168.31.129:28080/root/qy176_project_20240904_1.git
# 输入GitLab的用户名和密码: root   xxxxxx

七、gitlab数据备份

1、gitlab创建备份

1、手动备份

使用命令会在/var/opt/gitlab/backups目录下创建一个压缩包,这个压缩包就是Gitlab整个的完整部分。

# 创建备份。
gitlab-rake gitlab:backup:create

在这里插入图片描述
在这里插入图片描述

2、更改gitlab备份目录

也可以通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录
修改为你想存放备份的目录即可

# 开启备份功能
gitlab_rails['manage_backup_path'] = true
# 指定备份的路径
gitlab_rails['backup_path'] = "/home/gitlab-backup"
# 备份文件的权限
gitlab_rails['backup_archive_permissions'] = 0644
# 备份保留时间
gitlab_rails['backup_keep_time'] = 604800

在这里插入图片描述

# 重载配置文件
gitlab-ctl reconfigure
# 创建备份目录并授权
chown -R git:git /home/gitlab-backup

在这里插入图片描述

gitlab-rake gitlab:backup:create

在这里插入图片描述
在这里插入图片描述

3、自动备份

定时自动备份
实现每天凌晨2点进行一次自动备份:通过crontab使用备份命令实现,需重启cron服务

1、输入: crontab -e 然后添加相应的任务
# 输入命令crontab -e
crontab -e  
# 输入相应的任务
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1  
# 注意:环境变量CRON=1的作用是如果没有任何错误发生时, 抑制备份脚本的所有进度输出
# 查看周期性计划任务
crontab -l 

在这里插入图片描述

2、脚本执行gitlab备份
vim gitback.sh
#!/bin/bash
a="/home/gitlab-backup"
back="/home/git_back"
date="$(date +%Y-%m-%d)"
logfile=$back/$date.log
gitlab-rake gitlab:backup:create > /dev/null
b=`ls $a |wc -l`
if [ $b -eq 0 ];then
echo "$date.tar 备份失败" >> $logfile
elif [ $b -gt 0 ];then
echo " $date.tar 备份成功" >> $logfile
fi
mv $a/* $back/$date.tar

在这里插入图片描述
将脚本加入执行计划
在这里插入图片描述

# 设置系统时间
date -s 2024-11-11
# 设置系统时间
date -s 01:59:00
# 查看硬件时钟时间
hwclock --show
# 将硬件时钟时间写入系统时间
hwclock --hctosys

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值