一、下载安装
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




# 开放端口
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


5万+

被折叠的 条评论
为什么被折叠?



