Gitlab服务部署及应用

第四阶段

时  间:2023年8月21日

参加人:全班人员

内  容:

Gitlab服务部署及应用

目录

一、Gitlab简介

二、Gitlab工作原理

三、Gitlab服务构成

四、Gitlab的优点

五、Gitlab环境部署

(一)安装部署

(二)Web操作:

(三)测试:


一、Gitlab简介

        Gitlab 是一个基于Git实现的WEB代码仓库托管软件,你可以用Gitlab自己搭建一个类似于Github一样的代码仓库,一般使用gitlab搭建私有代码仓库主要是用在公司的内部代码管理。

        Gitlab 功能是能够对代码的提交审核和问题跟踪,这个对于软件工程(代码)质量的管理是至关重要的。

        Gitlab分为社区版(CE)和企业版(EE)。大多数的公司还是会选择社区版。部署Gitlab是对服务器有配置要求的建议是CPU两核,内存4G以上。

二、Gitlab工作原理

gitlab的原理其实就是git的工作原理,GitHub也是基于git实现的

 

Remote远程仓库:

        远程仓库的内容可能被分布在多个地点的处于协作关系的本地仓库修改,因此它可以与本地仓库同步,也可以不同步,但是它的内容是最旧的。

Repository本地仓库:

        这里面保存了被提交过的代码各个版本,比起工作区和暂存区的内容,它的内容会旧一些,git commit 后同步index的目录树到本地仓库,方便下一步通过git push同步本地仓库与远程仓库的同步。

index暂存区:

        git目录下的index文件,暂存区会记录git add 添加文件的相关信息(文件名、大小),不保存文件实体,通过id指向每个文件的实体,可以使用git status查看暂存区的状态,暂存区标记了你当前工作区中哪些内容是被git管理的。当你完成某个需求或者功能后需要提交代码,那么第一步就是通过git add 先提交到暂存区。

workspace工作区:

        程序员进行开发改动的地方,是你当前看到的,内容也是最新的。平常我们开发就是拷贝远程仓库中的分支,基于该分支进行开发,在开发的过程就是在工作区的操作。

总结:

任何对象都是在工作区中诞生和修改的;

任何修改都是从进入index区才开始被版本控制的;

只有把修改的代码提交到本地仓库,该修改才能在仓库中留下痕迹;

与协助者分享本地的修改,可以push到远程仓库来共享;

 

三、Gitlab服务构成

Nginx:静态Web服务器

gitlab-shell:用于处理Git命令和修改authorized keys列表

gitlab-workhorse:轻量级的反向代理服务器(这个是个敏捷的反向代理,它会处理一些大的HTTP请求,比如文件的上传下载,其他的请求会反向代理给Gitlab Rails应用)

logrotate:日志文件管理工具

postgresql:数据库

redis:缓存数据库

sidekiq:用于在后台执行队列的任务

unicorn:Gitlab Rails应用是托管在这个服务器上面的

四、Gitlab的优点

git是分布式的,svn不是

        git分布式本地就可以用,可以随便保存各种历史痕迹,不用担心污染服务器,连不上服务器也能提交代码、查看log。

GIT分支和SVN的分支不同

        分支在SVN中实际上是版本库中的一份copy,而git一个仓库是一个快照,所以git 切换、合并分支等操作更快速。

git有一个强大的代码仓库管理系统 – gitlab

可以很方便的管理权限、代码review,创建、管理project

五、Gitlab环境部署

(一)安装部署

1、主机名设置

[root@localhost ~]# hostname gitlab

[root@localhost ~]# bash

 

2、安装依赖包

[root@gitlab ~]# yum -y install curl openssh-server openssh-clients postfix cronie policycoreutils-python

 

3、启动postfix,并设置开机自启

[root@gitlab ~]# systemctl start postfix

[root@gitlab ~]# systemctl enable postfix

 

 

4、设置防火墙

[root@gitlab ~]# systemctl stop firewalld

[root@gitlab ~]# iptables -F

[root@gitlab ~]# setenforce 0

 

5、下载安装gitlab rpm包

清华开源镜像站:清华大学开源软件镜像站 | Tsinghua Open Source Mirror

[root@gitlab ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm

[root@gitlab ~]# rpm -ivh gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm

 

6、修改配置文件/etc/gitlab/gitlab.rb,生产环境下可以跟据需求修改

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb

  13 external_url 'http://192.168.200.111'

 

7、重新加载配置文件

[root@gitlab ~]# gitlab-ctl reconfigure

[root@gitlab ~]# gitlab-ctl restart

[root@gitlab ~]# netstat -lnpt | grep :80

启动:gitlib-ctl start    关闭:gitlab-ctl stop

重启:gitlab-ctl restart

重载配置:gitlab-ctl reconfigure

查看状态:gitlab-ctl status

8、查看gitlab版本

[root@gitlab ~]# head -1 /opt/gitlab/version-manifest.txt

 

(二)Web操作:

1、浏览器登录 GitLab,输入 http://192.168.100.131

输入密码

 

2、密码需要八位数

 

3、登录:root,12345678

 

4、登录成功后即可进入 GitLab 首页

 

5、创建新的项目

 

6、创建名称和权限

 

7、添加readme

 

8、创建测试内容:It's gitlab test,而后点绿色键添加

 

 

(三)测试:

1、客户机测试:

[root@localhost ~]# hostname jenkins[root@localhost ~]# bash[root@jenkins ~]# git config --global user.name "jenkins"[root@jenkins ~]# git config --global user.email "jenkins@test.com"[root@jenkins ~]# git config --global color.ui true[root@jenkins ~]# git config --list[root@jenkins ~]# git clone http://192.168.200.111/root/huyang.git[root@jenkins ~]# ls huyang/[root@jenkins ~]# cat huyang/README.md 

 

增加内容测试:

 

获取:(删除之前的内容,重新克隆)

 

2、设置发邮件功能

1)修改配置文件

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb

 

2)#修改gitlab配置的发信人

3)重新加载配置并重启服务

[root@gitlab ~]# gitlab-ctl reconfigure

[root@gitlab ~]# gitlab-ctl restart

 

4)测试邮件:

[root@gitlab ~]# gitlab-rails console -e production

irb(main):001:0> Notify.test_email('13363571949@163.com', 'Message Subject', 'Message Body').deliver_now

 

邮箱通知:

 

5)web设置邮箱,发送邮箱提醒!

 

邮箱通知

 

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

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

相关文章

ARM开发,stm32mp157a-A7核中断实验(实现按键中断功能)

1.实验目的:实现KEY1/LEY2/KE3三个按键,中断触发打印一句话,并且灯的状态取反; key1 ----> LED3灯状态取反; key2 ----> LED2灯状态取反; key3 ----> LED1灯状态取反; 2.分析框图: …

Django REST framework实现api接口

drf 是Django REST framework的简称,drf 是基于django的一个api 接口实现框架,REST是接口设计的一种风格。 一、 安装drf pip install djangorestframework pip install markdown # Markdown support for the browsable API. pip install …

java.8 - java -overrideoverload 重写和重载

重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。 重写方法不…

多种编程语言运行速度排名-10亿次除7求余数为0的数量

最佳方式是运行10次,取平均数,用时秒数显示3位小数。 因为第一次打开,可能CPU还没优化好,多次取平均,比较准确 第1次共10次,用时3秒,平均3秒 第2次共10次,用时4秒,平均3.…

4.17 如何基于 UDP 协议实现可靠传输?

目录 QUIC 是如何实现可靠传输的? Packet Header QUIC Frame Header QUIC 是如何解决 TCP 队头阻塞问题的? 什么是TCP对头阻塞问题: HTTP/2 的队头阻塞: 没有队头阻塞的 QUIC QUIC 是如何做流量控制的? QUIC 实现流量控制…

Vue实现Excel表格中按钮增加小数位数,减少小数位数功能,多用于处理金融数据

效果图 <template><div><el-button click"increaseDecimals">A按钮</el-button><el-button click"roundNumber">B按钮</el-button><el-table :data"tableData" border><el-table-column v-for&q…

screen

可以参考博客&#xff1a;https://blog.csdn.net/nima_zhang_b/article/details/82797928 Linux中的screen是一个命令行工具&#xff0c;可以让用户在同一个终端会话中创建多个虚拟终端。它非常有用&#xff0c;因为它允许用户在后台运行长时间的进程**&#xff0c;即使用户断…

使用Pytorch和OpenCV实现视频人脸替换

“DeepFaceLab”项目已经发布了很长时间了&#xff0c;作为研究的目的&#xff0c;本文将介绍他的原理&#xff0c;并使用Pytorch和OpenCV创建一个简化版本。 本文将分成3个部分&#xff0c;第一部分从两个视频中提取人脸并构建标准人脸数据集。第二部分使用数据集与神经网络一…

(学习笔记-调度算法)内存页面置换算法

在了解内存页面置换算法前&#xff0c;我们得先了解 缺页异常&#xff08;缺页中断&#xff09;。 当 CPU 访问的页面不在物理内存中时&#xff0c;便会产生一个缺页中断&#xff0c;请求操作系统将缺页调入到物理内存。那它与一般的中断主要区别在于: 缺页中断在指令执行 [期…

共享内存 windows和linux

服务端&#xff0c;即写入端 #include <iostream> #include <string.h> #define BUF_SIZE 1024 #ifdef _WIN32 #include <windows.h> #define SHARENAME L"shareMemory" HANDLE g_MapFIle; LPVOID g_baseBuffer; #else #define SHARENAME "sh…

Git 版本控制系统

git相关代码 0、清屏幕&#xff1a;clear 1、查看版本号 git -v2、暂存、更改、提交 3、当前项目下暂存区中有哪些文件 git ls-files4、查看文件状态 git status -s5、暂时存储&#xff0c;可以临时恢复代码内容 git restore 目标文件 //&#xff08;注意&#xff1a;完全…

分布式事务-seata框架

文章目录 分布式事务0.学习目标1.分布式事务问题1.1.本地事务1.2.分布式事务1.3.演示分布式事务问题 2.理论基础2.1.CAP定理2.1.1.一致性2.1.2.可用性2.1.3.分区容错2.1.4.矛盾 2.2.BASE理论2.3.解决分布式事务的思路 3.初识Seata3.1.Seata的架构3.2.部署TC服务3.3.微服务集成S…

【3D激光SLAM】LOAM源代码解析--laserMapping.cpp

系列文章目录 【3D激光SLAM】LOAM源代码解析–scanRegistration.cpp 【3D激光SLAM】LOAM源代码解析–laserOdometry.cpp 【3D激光SLAM】LOAM源代码解析–laserMapping.cpp 【3D激光SLAM】LOAM源代码解析–transformMaintenance.cpp 写在前面 本系列文章将对LOAM源代码进行讲解…

【Jenkins】持续集成部署学习

【Jenkins】持续集成部署学习 【一】Jenkins介绍【二】Docker安装Gitlab【1】首先准备一台空的虚拟机服务器【2】安装服务器所需的依赖【3】Docker的安装【4】阿里云镜像加速【5】安装Gitlab 【三】Gitlab的使用&#xff08;1&#xff09;Gitlab创建项目&#xff08;2&#xff…

SpringBoot案例-配置文件-参数配置化

前言 目前我们已经完成了部门管理和员工管理功能接口的实现&#xff0c;阿里云OSS工具类中&#xff0c;我们会设置4个参数&#xff0c;分别是云服务域名、云服务ID和密码、文件存储的Bucket、就会存在以下问题&#xff1a;参数配置分散以及参数发生变化&#xff0c;就需要对应…

数据结构—循环队列(环形队列)

循环队列&#xff08;环形队列&#xff09; 循环队列的概念及结构循环队列的实现 循环队列的概念及结构 循环队列是一种线性数据结构&#xff0c;其操作表现基于 FIFO&#xff08;先进先出&#xff09;原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。…

同为科技(TOWE)带热插拔功能机柜PDU插座的应用

所谓热插拔&#xff08;hot-plugging或Hot Swap&#xff09;&#xff0c;即带电插拔&#xff0c;指的是在不关闭系统电源的情况下&#xff0c;将模块、板卡插入或拔出系统而不影响系统的正常工作&#xff0c;从而提高了系统的可靠性、快速维修性、冗余性和对灾难的及时恢复能力…

HVV爆火漏洞:最新 WPS RCE (远程命令执行) 复现

最近HVV爆出的很火的WPS命令执行漏洞&#xff0c;其实并不是0DAY&#xff0c;早在2019年就出现了&#xff0c;只不过最近EXP才公开。接下来我们来复现一遍。 0x00 影响版本 WPS Office 2023 个人版 < 11.1.0.15120WPS Office 2019 企业版 < 11.8.2.12085 0x01 环境配置…

[管理与领导-50]:IT基层管理者 - 8项核心技能 - 5 - 沟通是润滑剂

目录 前言&#xff1a; 一、什么是沟通 1.1 定义 1.2 沟通模型 1.3 沟通的六层次模型 1.4 为什么需要沟通 二、沟通的五维度 三、沟通的原则 3.1 以终为始 3.2 双赢思维&#xff1a;人们只会做对自己有利的事 3.3 牵善的思维 四、沟通的过程 五、沟通技巧 六、深…

【HSPCIE仿真】输入网表文件(1)基本内容和基本规则

输入网表文件 1. 输入网表文件基本内容2. 输入网表文件示例3. 一些基本规则4. 数值表示5. 压缩文件格式的读取6. 参数和表达式 从HSPICE的仿真流程看&#xff0c;出去初始化配置过程&#xff0c;真正的仿真是从输入网表文件开始的。 HSPICE 根据输入网表文件&#xff08; inpu…