Gitlab搭建

Gitlab搭建

  • 一.gitlab安装
  • 二.gitlab安装目录
  • 三.gitlab常用命令汇总
  • 四.gitlab访问测试
    • 1.登录gitlab
    • 2.配置默认访问密码
    • 3.登陆自己创建的账户
  • 五.gitlab图形化操作
    • 1.gitlab关闭自动注册
    • 2.gitlab免密登录
    • 3.gitlab创建项目
    • 4.使用管理员创建账户
    • 5.gitlab 添加邮箱设置
      • 5.1开启SMTP功能
      • 5.2验证
    • 6.修改登录欢迎页面
  • 六.gitlab命令行操作
    • 1.命令行新建分支
    • 2.上传代码仓库
    • 3.git命令行常用指令的使用
      • 3.1提交与修改
  • 七.gitlab数据备份
    • 1.gitlab创建备份
      • 1.1手动备份
    • 2.更改gitlab备份目录
    • 3.gitlab自动备份
      • 3.1方法一 输入: crontab -e 然后添加相应的任务
      • 3.2脚本执行gitlab 备份

一.gitlab安装

设置gitlab的yum源(使用清华镜像源安装GitLab)
gitlab-ce是它的社区版,gitlab-ee是企业版,是收费的。

在 /etc/yum.repos.d/ 下新建 gitlab-ce.repo,写入如下内容:cd /etc/yum.repos.d/
vim gitlab-ce.repo[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
gpgcheck=0
enabled=1yum clean all && yum makecache

在这里插入图片描述
安装Gitlab

# 直接安装最新版
yum install -y gitlab-ce 

出现下面的图标,安装成功
在这里插入图片描述

# 如果要安装指定的版本,在后面填上版本号即可
yum install -y  gitlab-ce-×××
# 如果安装时出现gpgkey验证错误,只需在安装时明确指明不进行gpgkey验证
yum install gitlab-ce -y --nogpgcheck

关闭防火墙,开机自关闭

systemctl stop firewalldsystemctl disable firewalldsetenforce 0

安装完gitlab需要修改配置文件,并加载

vim /etc/gitlab/gitlab.rb     进入配置文件

找到下面一行,修改ip
在这里插入图片描述

修改好配置文件后,要使用 gitlab-ctl reconfigure 命令重载一下配置文件,否则不生效即可启动Gitlab。注意,启动过程较长,需要耐心等待。
查看Gitlab的状态,执行命令

gitlab-ctl status

在这里插入图片描述

二.gitlab安装目录

gitlab组件日志路径:/var/log/gitlabgitlab配置路径:/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常用命令汇总

#查看服务状态
gitlab-ctl status
使用控制台实时查看日志
# 查看所有的logs; 按 Ctrl-C 退出
gitlab-ctl tail
# 拉取/var/log/gitlab下子目录的日志
gitlab-ctl tail gitlab-rails
# 拉取某个指定的日志文件
gitlab-ctl tail nginx/gitlab_error.log
#启动关闭gitlab	
gitlab-ctl start      
gitlab-ctl stop                                #停止            
gitlab-ctl status                              #查看状态
gitlab-ctl restart                             #重启
gitlab-ctl reconfigure			   #更新配置文件
gitlab-ctl help                                #帮助
gitlab-rake gitlab:check SANITIZE=true --trace	检查gitlab
#gitlab 默认的日志文件存放在/var/log/gitlab 目录下
gitlab-ctl tail                                #查看所有日志
#禁止 Gitlab 开机自启动
systemctl disable gitlab-runsvdir.service 
#启用 Gitlab 开机自启动
systemctl enable gitlab-runsvdir.service

四.gitlab访问测试

1.登录gitlab

打开浏览器输入gitlab服务器地址,注册用户,如下图
在这里插入图片描述
注册用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完成后想登录http://192.168.40.185:9091 需要账号和密码登录,注册一个后登录报错误,需要管理员账号初始化

2.配置默认访问密码

 切换到命令运行的目录 cd /opt/gitlab/bin/执行如下命令:gitlab-rails console -e production  进行初始化密码
在irb(main):001:0> 后面通过 u=User.where(id:1).first 来查找与切换账号(User.all 可以查看所有用户)
gitlab-rails console -e production
u=User.where(id:1).first
u.password='because5210.0'
u.password_confirmation='because5210.0'
u.save!
exit出现true说明设置成功!
此时就可以用root/because5210.0来登录页面

在这里插入图片描述
成功登录root账户
在这里插入图片描述
设置中文
在这里插入图片描述
在这里插入图片描述

3.登陆自己创建的账户

root账号登陆
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再次登录,登陆成功
在这里插入图片描述

五.gitlab图形化操作

1.gitlab关闭自动注册

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

2.gitlab免密登录

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

首先,在想要进行验证的设备上执行命令:

ssh-keygen
[root@localhost ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:9s9C6howGF17soK592sDESNOydaJf88Ee/csxOpkoro root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| . + ..          |
|  B.=...         |
| +.o.ooo..       |
|  .=o o+o +      |
|  + +o.=S+ o     |
|   ..+..*.o o    |
|  . .o.= o..     |
|   ...o.o .o     |
|  Eo .+=.  .o    |
+----[SHA256]-----+
[root@localhost ~]# 

完成上述配置后,可以生成本设备的公私钥对,执行命令:

可以查看本设备的公钥,如下所示:

[root@localhost ~]# cat /root/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeW8qTs//BIuY8Fb9MM1qxFDFpzUygfOxhgDS9ngv92AXBVEufIeoOWnV3IFO2BHD8GYdMzi5USyQyVNA6fQ3KxCgoHMk5d9Tb4ZGdtBqNkJQ8aJdNEfC9mAtYnlJXeF9+DYdcRhRD+i6RoDkG12+fHcwImgBOnnz0MgWus+IT4rE8p6CL4oabdZ+R4Oh9fHWxJ7QKUrid9C65WC0YpW0QP5ewr63eNTJRHqRv/Vh+B1cvNZqk1p/x73K8UMvEK8ff5QBC6eujmBZckRANmMSAGnkJMHQSFFTfh1uFK5spGD7E0Etc7+cyogKhWrI7O5P/XfGEraPb+QBxuFnUVRxN root@localhost.localdomain

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

3.gitlab创建项目

Gitlab上创建项目。由于新项目的创建必须依赖于一个组,因此,我们在创建项目前,先创建组。
进入Gitlab主页面后,点击Overview中的Groups选项,然后点击右边的New group,选择新创建一个组,如下所示:
在这里插入图片描述
输入组的名称和描述,组的URL会随着组名称的输入而自动出现,在组的权限处,我们选择Private,配置完成后如下所示
在这里插入图片描述

接下来,我们点击最下方的Create Group,就可以完成组的创建了,如下所示:在这里插入图片描述
接下来,我们来创建项目。项目的创建与组的创建过程类似,都是输入项目名称,选择组的名称,项目描述以及权限等,配置好的项目如下所示:
在这里插入图片描述
配置完成后,就可以创建项目了。
创建项目后,Gitlab会自动创建一个README.md的文件,我们可以在线对该文件机型编辑,如下所示:
在这里插入图片描述

4.使用管理员创建账户

前提:使用root管理员账号密码登陆GitLab
在这里插入图片描述
初始密码由管理员设置,

当用户第一次登录时,由用户进行修改密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.gitlab 添加邮箱设置

5.1开启SMTP功能

登陆邮箱==》设置==》账户==》POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务==》开启SMTP服务==》接收验证
在这里插入图片描述

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

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

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

5.2验证

Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
Notify.test_email('1657xxxx@qq.com', 'GitLab email', 'Hellow world').deliver_now
执行 gitlab-rails console进入控制台交互界面, 然后在控制台提示符后输入下面内容发送一封测试邮件,测试完成后exit()退出。

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

6.修改登录欢迎页面

看下图操作即可
在这里插入图片描述
设置完的效果图
在这里插入图片描述

六.gitlab命令行操作

第一次使用该项目地址的话,需要创建新版本库,首先从主项目上fork一个自己的项目。从自己项目上获取clone(克隆)链接地址。在想要存放的目录下执行
在这里插入图片描述

git clone http://192.168.40.185:9091/test/git_test.git

在这里插入图片描述
在这里插入图片描述
查看日志
在这里插入图片描述

1.命令行新建分支

查看当前所在的分支
git branch 查看分支

在这里插入图片描述

git branch deve 创建分支,deve为新的分支名,可改
git checkout deve  进入到刚刚创建的分支
切换分支

在这里插入图片描述
查看状态(跟源文件有出入的文件)
在这里插入图片描述

git status
git push -u origin deve 		提交到新分支中

在这里插入图片描述
添加新分支成功
在这里插入图片描述

切换到主分支
git checkout main

2.上传代码仓库

首次使用Git的话,需要设置全局的用户名和邮箱设置,如下图所示:
在这里插入图片描述

在命令行或终端中使用下面的命令可以设置git自己的名字和电子邮件。这是因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
git config --global user.name "root"
git config --global user.email "admin@example.com"# 查看配置
git config --list

在这里插入图片描述

git init			初始化git
git remote add origin http://192.168.40.185:9091/test/git_test.git	将本地git和服务器上的连接
git add 1.txt		添加要提交的本地项目	(.代表所有 可用文件名代替. 上传某个文件)
git commit -m "测试代码"		提交到本地仓库
git push -u origin main 	将项目推送到gitlab端出现报错:
fatal: 远程 origin 已经存在 
解决:
#删除远程配置 git remote rm origin 
#重新添加 git remote add origin http://192.168.58.10:9091/test/git_test.git

在这里插入图片描述
这样就可以了,刷新gitlab页面就可以看到上传的项目了。
在这里插入图片描述

3.git命令行常用指令的使用

git status 	#上次提交后是否对文件再做了修改项目
git add . 		#添加所有的变动
git checkout -b 文件夹名称 		#创建本地分支并切换分支 git checkout -b pr/ffr
git commit -m “描述”			 #提交修改 git commit -m “修改什么”
git merge origin/develop “本地分支” 		#合并origin/develop上别人所做的修改到自己的本地分支 git merge origin/develop pr/ffr
git push origin “本地分支” #推送本地分支到远程,并建立联系 git push origin pr/ffr
git rebase -i 编号 #合并多次提交,将前几次的提交合并为一次
git checkout 分支名 #切换分支 git checkout pr/FFR-color git cherckout develop
git pull #更新当前分支的状态
git branch #列出本地分支
git branch -a #列出本地分支与远程分支
git branch -D 分支名 #删除分支(目前仅用于删除本地分支)
git remote -v #可以查看远程仓库信息
git branch 分支名 #仅仅创建 一个新分支,并不会自动切换到新分支中去
git rebase --abort #退出git rebase
git reset 提交编号 #git rebase -i 提交编号,之后出现错误,可以回退到之前未合并时的日志状态
git commit --amend -m “描述” #修改上一次的提交的描述
git stash #暂存上一次的修改,准备切换到其他的分支
git stash pop #还原上一次的修改,将暂存的修改加入到新的分支

3.1提交与修改

命令说明
git add添加文件到暂存区
git status查看仓库当前的状态,显示有变化的文件
git diff比较文件的不同,即暂存区和工作区的差异
git commit提交暂存区到本地仓库
git reset回退版本
git rm删除工作区文件
git mv移动或重命名工作区文件

七.gitlab数据备份

1.gitlab创建备份

1.1手动备份

创建备份文件
使用一条命令即可创建完整的Gitlab备份。
gitlab-rake gitlab:backup:create   
使用命令会在/var/opt/gitlab/backups目录下创建一个压缩包,这个压缩包就是Gitlab整个的完整部分。

在这里插入图片描述

生成完后,/var/opt/gitlab/backups目录
创建一个名称类似为1715127202_2024_05_08_16.11.1_gitlab_backup.tar的压缩包

其中

/etc/gitlab/gitlab.rb 配置文件须备份
/var/opt/gitlab/nginx/conf  nginx配置文件
/etc/postfix/main.cfpostfix  邮件配置备份

2.更改gitlab备份目录

也可以通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录
修改为你想存放备份的目录即可gitlab_rails['backup_path'] = "/home/gitlab-backup"#指定备份后数据存放的路径、权限、时间配置
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备份
这个压缩包就是gitlab的整个完整部分

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

3.gitlab自动备份

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

3.1方法一 输入: crontab -e 然后添加相应的任务

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

在这里插入图片描述

3.2脚本执行gitlab 备份

#!/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

在这里插入图片描述
将脚本加入执行计划
在这里插入图片描述
先清空gitlab-backup下的文件进行测试
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/324463.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【直观对比】RTX3090和RTX4090的计算能力的参数对比

1. 引言 随着大模型的火热,越来越多的人希望可以购买一个硬件进行大模型的推理,特别是在3090和4090显卡的对比上,需求比较大。目前已有的显卡对比,大多面向于高端的A/H100或者800系列的对比和分析,如图所示。 项目A1…

Minimal-Supervised Medical Image Segmentation via Vector Quantization Memory

文章目录 Minimal-Supervised Medical Image Segmentation via Vector Quantization Memory摘要方法实验结果 Minimal-Supervised Medical Image Segmentation via Vector Quantization Memory 摘要 辅助重构分支:该分支通过提供额外的监督并产生学习视觉表示所需…

ios实现拍摄视频与显示在界面上

1、添加录音和拍摄权限 NSMicrophoneUsageDescription Privacy - Camera Usage Description 2、代码 #import "ViewController.h" #import <AVFoundation/AVFoundation.h> #import <MobileCoreServices/MobileCoreServices.h>// 接下来是你的 ViewCont…

nginx--tcp负载均衡

mysql负载均衡 安装mysql yum install -y mariadb-server systemctl start mariadb systemctl enable mariadb ss -ntl创建数据库并授权 MariaDB [(none)]> create database wordpress; Query OK, 1 row affected (0.00 sec)MariaDB [(none)]> grant all privileges o…

快速搭建webase-front并且部署合约

PS: 因为我开发时候要用到fisco和webase-front,避免官方文档粘贴, 因此直接整理下面的笔记。开发的时候,好粘贴。1.搭建4节点联盟链 前提 curl 一种命令行工具 apt install -y openssl curl创建操作目录, 下载安装脚本 cd ~ && mkdir -p fisco && cd fisco…

uniapp百度地图聚合

// loadBMap.js ak 百度key export default function loadBMap(ak) {return new Promise((resolve, reject) > {//聚合API依赖基础库,因此先加载基础库再加载聚合APIasyncLoadBaiduJs(ak).then(() > {// 调用加载第三方组件js公共方法加载其他资源库// 加载聚合API// Ma…

《ESP8266通信指南》15-MQTT连接、订阅MQTT主题并打印消息(基于Lua|适合新手|非常简单)

往期 《ESP8266通信指南》14-连接WIFI&#xff08;基于Lua&#xff09;-CSDN博客 《ESP8266通信指南》13-Lua 简单入门&#xff08;打印数据&#xff09;-CSDN博客 《ESP8266通信指南》12-Lua 固件烧录-CSDN博客 《ESP8266通信指南》11-Lua开发环境配置-CSDN博客 《ESP826…

JUC下CountDownLatch详解

详细介绍 CountDownLatch是Java并发包java.util.concurrent中提供的一个同步工具类&#xff0c;它允许一个或多个线程等待其他线程完成操作后再继续执行。这个工具类基于一个计数器&#xff0c;计数器的初始值可以由构造函数设定。线程调用countDown()方法会将计数器减1&#x…

深入理解JavaScript事件循环Event Loop:宏任务与微任务的奇幻之旅

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 &#x1f389; 引言&#x1f31f; 什么是事件循环&#xff1f;&#x1f4da; 「宏任务」 vs 「微任务」「宏任务」(Macrotask)「微任务」(Microtask)实际应用中的注意事项 &#x1f500; 执行流程概览&#x1f4dd; 代码示例…

如何在JavaScript/Vue中获取当前时间并格式化输出(精确到时分秒)

如何在JavaScript/Vue中获取当前时间并格式化输出&#xff08;精确到时分秒&#xff09; 不只是树&#xff0c;人也是一样&#xff0c;在不确定中生活的人&#xff0c;能比较经得起生活的考验&#xff0c;会锻炼出一颗独立自主的心。在不确定中&#xff0c;就能学会把很少的养分…

在uniapp中如何安装axios并解决跨域问题

目录 1、安装axios 2、导入 3、使用&#xff08;发请求&#xff09; 2.解决跨域问题 1.为什么要解决跨域问题&#xff1f; 2.前端如何解决跨域问题&#xff1f; 1、安装axios npm install axios 2、导入 在main.js中导入使用 import axios from axios; // 创建一个名…

智慧互联,统信UOS V20桌面专业版(1070)解锁办公新模式丨年度更新

从小屏到大屏 突破&#xff0c;就在方寸之间 从人机到智脑 融合&#xff0c;旨在新质生产力 统信UOS一直致力于将先进科技与用户场景相结合&#xff0c;不断提升用户的工作效率和生产力。在最新发布的统信UOS V20桌面专业版&#xff08;1070&#xff09;版本中&#xff0c;我们…

Rust 解决循环引用

导航 循环引用一、现象二、解决 循环引用 循环引用出现的一个场景就是你指向我&#xff0c;我指向你&#xff0c;导致程序崩溃 解决方式可以通过弱指针&#xff0c;而Rust中的弱指针就是Weak 在Rc中&#xff0c;可以实现&#xff0c;对一个变量&#xff0c;持有多个不可变引…

【一支射频电缆的诞生】GORE 戈尔

工具连接&#xff1a; https://microwave-cablebuilder.gore.com/ 控制参数&#xff1a; 连接器&#xff1a; 欣赏

Android APP读写外置SD卡无权限 java.io.IOException: Permission denied

在物联网应用里&#xff0c;app需要对挂载SD卡读写文件&#xff0c;从 Android 4.4&#xff08;KitKat&#xff09;版本开始&#xff0c;Google 引入了一项名为 "Storage Access Framework" 的新功能&#xff0c;该功能限制了应用对外部存储的直接读写权限,要不然就是…

【挑战30天首通《谷粒商城》】-【第一天】03、简介-分布式基础概念

文章目录 课程介绍 ( 本章了解即可&#xff0c;可以略过)1、微服务简而言之: 2、集群&分布式&节点2.1、定义2.2、示例 3、远程调用4、负载均衡常见的负裁均衡算法: 5、服务注册/发现&注册中心6、配置中心7、服务熔断&服务降级7.1、服务熔断7.2、服务降级 8、AP…

Appium测试之获取appPackage和appActivity

appPackage和appActivity 进行appium自动化测试非常重要的两个参数&#xff0c;我们所测试的APP不同&#xff0c;这两个参数肯定也是不一样的。那如何快速的获取这APP的这两个参数呢&#xff1f;我这里介绍两个方法。 import org.openqa.selenium.remote.DesiredCapabilities;i…

从零开始学AI绘画,万字Stable Diffusion终极教程(六)

【第6期】知识补充 欢迎来到SD的终极教程&#xff0c;这是我们的第六节课&#xff0c;也是最后一节课 这套课程分为六节课&#xff0c;会系统性的介绍sd的全部功能&#xff0c;让你打下坚实牢靠的基础 1.SD入门 2.关键词 3.Lora模型 4.图生图 5.controlnet 6.知识补充 …

利用生成式AI重新构想ITSM的未来

对注入 AI 的生成式 ITSM 的需求&#xff0c;在 2023 年 Gartner AI 炒作周期中&#xff0c;生成式 AI 达到预期值达到顶峰后&#xff0c;三分之二的企业已经将生成式 AI 集成到其流程中。 你问为什么这种追求&#xff1f;在预定义算法的驱动下&#xff0c;IT 服务交付和管理中…

PyCharm 集成 Git

目录 1、配置 Git 忽略文件 2、定位Git 3、使用pycharm本地提交 3.1、初始化本地库 3.2、添加到暂存区 3.3、提交到本地库 3.4、切换版本 4、分支操作 4.1、创建分支 4.2、切换分支 4.3、合并分支 5、解决冲突 1、配置 Git 忽略文件 作用&#xff1a;与项目的实际…