Gitlab服务部署及应用

目录

Gitlab简介

Gitlab工作原理

Gitlab服务构成

Gitlab环境部署

 安装依赖包

启动postfix,并设置开机自启

设置防火墙

下载安装gitlab rpm包

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

重新加载配置文件

 浏览器登录Gitlab输入 http://服务器IP

打开另一台主机

 设置发邮件功能


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工作区:

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

总结:

  1. 任何对象都是在工作区中诞生和修改的;
  2. 任何修改都是从进入index区才开始被版本控制的;
  3. 只有把修改的代码提交到本地仓库,该修改才能在仓库中留下痕迹;
  4. 与协助者分享本地的修改,可以push到远程仓库来共享;

 

 

Gitlab服务构成

  1. Nginx:静态Web服务器
  2. gitlab-shell:用于处理Git命令和修改authorized keys列表
  3. gitlab-workhorse:轻量级的反向代理服务器(这个是个敏捷的反向代理,它会处理一些大的HTTP请求,比如文件的上传下载,其他的请求会反向代理给Gitlab Rails应用)
  4. logrotate:日志文件管理工具
  5. postgresql:数据库
  6. redis:缓存数据库
  7. sidekiq:用于在后台执行队列的任务
  8. unicorn:Gitlab Rails应用是托管在这个服务器上面的

Gitlab环境部署

[root@localhost ~]# hostname gitlab
[root@localhost ~]# bash
[root@gitlab ~]#

 安装依赖包

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

启动postfix,并设置开机自启

[root@gitlab ~]# systemctl start postfix
[root@gitlab ~]# systemctl enable postfix

设置防火墙

[root@gitlab ~]# systemctl stop firewalld
[root@gitlab ~]# iptables -F
[root@gitlab ~]# setenforce 0

下载安装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
--2023-08-18 09:51:35--  https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm
正在解析主机 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.15.130, 2402:f000:1:400::2
正在连接 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.15.130|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:656975758 (627M) [application/x-redhat-package-manager]
正在保存至: “gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm”100%[===============================================================>] 656,975,758 3.97MB/s 用时 2m 43s 2023-08-18 09:54:18 (3.85 MB/s) - 已保存 “gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm” [656975758/656975758])[root@gitlab ~]# rpm -ivh gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm 
警告:gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID f27eab47: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...1:gitlab-ce-11.11.3-ce.0.el7       ################################# [100%]*.                  *.***                 ********               *****.******             ***************            ********,,,,,,,,,***********,,,,,,,,,,,,,,,,,,,,*********,,,,,,,,,,,.,,,,,,,,,,,*******,,,,,,,,,,,,,,,,,,,,,*****,,,,,,,,,.,,,,,,,****,,,,,,.,,,***,,,,,*,._______ __  __          __/ ____(_) /_/ /   ____ _/ /_/ / __/ / __/ /   / __ `/ __ \/ /_/ / / /_/ /___/ /_/ / /_/ /\____/_/\__/_____/\__,_/_.___/

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

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb 
13 external_url 'http://192.168.147.142'

重新加载配置文件

[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl restart
[root@gitlab ~]# netstat -lnpt | grep :80tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      11982/nginx: master 
  1. 启动:gitlib-ctl start
  2. 关闭:gitlab-ctl stop
  3. 重启:gitlab-ctl restart
  4. 重载配置:gitlab-ctl reconfigure
  5. 查看状态:gitlab-ctl status

查看gitlab版本

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

 浏览器登录Gitlab输入 http://服务器IP

 

 

 创建新的项目

 

 

 

打开另一台主机

[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
user.name=jenkins
user.email=jenkins@test.com
color.ui=true
[root@jenkins ~]# git clone http://192.168.147.142/root/crushlinux.git
正克隆到 'crushlinux'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.

 设置发邮件功能

修改配置文件

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
517 gitlab_rails['smtp_enable'] = true518 gitlab_rails['smtp_address'] = "smtp.163.com"519 gitlab_rails['smtp_port'] = 25520 gitlab_rails['smtp_user_name'] = "crushlinux@163.com"521 gitlab_rails['smtp_password'] = "123456"522 gitlab_rails['smtp_domain'] = "163.com"523 gitlab_rails['smtp_authentication'] = "login"524 gitlab_rails['smtp_enable_starttls_auto'] = true
#修改gitlab配置的发信人53 gitlab_rails['gitlab_email_from'] = 'crushlinux@163.com'
677 user['git_user_email'] = "crushlinux@163.com"

 重新加载配置并重新启动服务

[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl restart

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

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

相关文章

ChatGpt开源项目完美运行配置-ChatGml2

(以下所有软件均可免费在网盘获取。) 任务描述 本节任务是安装和配置chatgpt项目所需的软件以及chatgpt项目所需要的python库包,同时编写python代码来完成chatgpt项目的人机对话功能。 实验工具 显卡GTX1070(专用内存需要大于等…

业内首份!电信和互联网数据安全标准汇编发布(附下载)

电信和互联网企业的主要数据安全问题: 一是违法违规收集和使用个人信息,如在个人不知情的情况下收集个人敏感信息、超出数据主体同意的范围使用个人信息等。 二是未采取有效的技术和管理措施保护数据,导致其收集或在运营中产生的重要数据被窃…

Streamlit项目:基于讯飞星火认知大模型开发Web智能对话应用

文章目录 1 前言2 API获取3 官方文档的调用代码4 Streamlit 网页的搭建4.1 代码及效果展示4.2 Streamlit相关知识点 5 结语 1 前言 科大讯飞公司于2023年8月15日发布了讯飞认知大模型V2.0,这是一款集跨领域知识和语言理解能力于一体的新一代认知智能大模型。前日&a…

基于Googlenet深度学习网络的信号调制类型识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 深度学习与卷积神经网络 4.2 数据预处理 4.3 GoogLeNet结构 4.4 分类器 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ............…

2.创建小程序

创建 在开发工具中,选择小程序,点击加号 填写小程序信息,模板使用的是TS+Sass 编辑器的工作区 目录结构 项目使用的是ts的模板,目录结构和js的有一点差异,目录结构如下: miniprogram:小程序根目录 —pages:小程序页面目录 ——xxx:页面目录,一个页面对应一个目…

深入了解Maven(一)

目录 一.Maven介绍与功能 二.依赖管理 1.依赖的配置 2.依赖的传递性 3.排除依赖 4.依赖的作用范围 5.依赖的生命周期 一.Maven介绍与功能 maven是一个项目管理和构建工具,是基于对象模型POM实现。 Maven的作用: 便捷的依赖管理:使用…

智慧医院IT运维方案,全局网络态势感知

随着医疗卫生体制改革不断深化,卫生行业信息化应用不断普及,大数据、AI、医疗物联网等技术的应用,快速推动“智慧医院”建设。以HIS(医院信息系统)、EMRS(电子病历系统)、PACS(影像归…

算法通关村第5关【青铜】| Hash和队列的特征

1.Hash基础 (1)基础 哈希也称为散列,通过算法变成固定长度的输出值,存入对应的位置 例如这个算法为取模算法,indexnumber 模 7 存入1到15 (2)碰撞处理 当多个元素映射到同一位置上时就产生…

opencv进阶12-EigenFaces 人脸识别

EigenFaces 通常也被称为 特征脸,它使用主成分分析(Principal Component Analysis,PCA) 方法将高维的人脸数据处理为低维数据后(降维),再进行数据分析和处理,获取识别结果。 基本原理…

WPF入门到精通:1.新建项目及项目结构

WPF(Windows Presentation Foundation)是一种用于创建 Windows 应用程序的技术,它可以通过 XAML(Extensible Application Markup Language)和 C# 或其他 .NET 语言来实现。WPF 提供了许多强大的 UI 控件和样式&#xf…

C语言:库函数atoi及其模拟实现

i: atof是C语言标准库中的一个函数,用于将字符串转换为对应的浮点数/整形数。 函数接受一个参数str,该参数是一个指向以null结尾的字符串的指针。atof函数会尝试将这个字符串转换为一个浮点数,并返回转换后的结果。 要注意的是&a…

如何将图片应用于所有的PPT页面?

问题:如何快速将图片应用到所有PPT页面? 解答:有两种方法可以解决这个问题。第一种用母板。第二种用PPT背景功能。 解决有时候汇报的时候,ppt中背景图片修改不了以及不知道如何查找,今天按照逆向过程进行操作 方法1…