DevOps-Gitlab-私有代码仓库

news2024/11/14 19:00:10

1. 概述

1. 私有代码仓库

2. 精细化权限配置,让系统更安全

3. 控制用户/用户组是否可以提交到主分支 (PR Push Request)

4. 它使用Ruby语言写成。后来,一些部分用Go语言重写

2. Gitlab vs Github/Gitee 

GitlabGithub/Gitee
共同点存放代码,git访问存放代码,git访问
不同点

精确化控制权限

全面安全措施

定时备份

升级

迁移

使用权限,用户管理比较弱,无法做到精细化权限

3. Gitlab快速上手指南

安装要求:GitLab architecture overview | GitLab

环境准备:

主机ip
gitlab10.0.0.60

3.1 安装Gitlab

##安装gitlab
yum localinstall -y gitlab-ce-15.9.3-ce.0.el7.x86_64.rpm 

##修改配置文件
vim /etc/gitlab/gitlab.rb 
external_url 'http://gitlab.oldboylinux.cn'
gitlab_rails['smtp_enable'] = false
gitlab_rails['registry_enabled'] = false
registry['enable'] = false 
prometheus['enable'] = false 
alertmanager['enable'] = false 
node_exporter['enable'] = false 
redis_exporter['enable'] = false 
postgres_exporter['enable'] = false 
gitlab_exporter['enable'] = false 
prometheus_monitoring['enable'] = false 


##检查
egrep -v '^$|#' /etc/gitlab/gitlab.rb 

##初始化
gitlab-ctl reconfigure 

## 查看状态
gitlab-ctl status

##检查端口和进程
ps -ef |grep gitlab
ss -lntup |grep gitlab

 

 3.1 登录与查看

3.2 汉化

进入账号里面的:prefenences(属性)

选择Localization 中的 Language,选择中文

3.3 设置密码 

记得修改密码,初始化的密码会在24小时候删除哦!

3.4 目录结构 

ll /var/opt/gitlab/

##配置文件目录
/var/opt/gitlab/

##日志目录
/var/log/gitlab/ 

3.5 删除

1. 删除rpm

2. /var/opt/gitlab /opt/gitlab/ 2个目录删除

3. 备份内核参数配置 /opt/gitlab/embedded/etc/*-gitlab-*.conf

4. 安装完成,覆盖回去上面几个conf

 3.6 重置密码

##重置密码
gitlab-rake "gitlab:password:reset"

4. Gitlab用户与组

4.1 应用案例

案例创建用户组:dev

1. dev开发组

2. 添加用户xzb

3. 创建1个项目live_app项目

4. 项目与dev组关联

dev开发组 

添加用户

关联用户与用户组

进入群组中,选择邀请成员.权限注意要设置为owner权限

   

创建项目

5. Gitlab 备份与恢复 

5.1 配置文件

##配置文件 的backup部分
backup_

gitlab_rails['manage_backup_path'] = true  ##是否可以指定备份目录
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"  ###备份目录
gitlab_rails['backup_archive_permissions'] = 0644  ## 备份的压缩包权限
gitlab_rails['backup_keep_time'] = 604800  ##备份保留多久  7天 


##配置生效
gitlab-ctl  reconfigure 
gitlab-ctl  restart 

##查看
ll -d /var/opt/gitlab/backups/

5.2 手动备份

#GitLab 版本>=12.2
gitlab-backup create


##GitLab 版本<=12.1
gitlab-rake gitlab:backup:create

5.3 自动备份

#每天备份1次 
## 1.备份数据
gitlab-backup create

## 2.备份gitlab配置和密码文件
tar zcf  /backup/gitlab/gitlab-conf-$(date +%F).tar.gz   /etc/gitlab/

## 3.传输到备份服务器

## 4. 写入到定时任务
00 03 * * * sh  /server/scripts/backup-gitlab.sh  &>/dev/null 

6. 恢复

##停止写入类服务
gitlab-ctl  stop  unicorn 
gitlab-ctl  stop  sidekiq

##gitlab-rake恢复 (不需要加tar)
##新版本GitLab 版本>=12.2
gitlab-rake  gitlab:backup:restore    BACKUP=备份文件
gitlab-backup restore BACKUP=11493107454_2018_04_25_10.6.4-ce

##旧版本GitLab 版本<=12.1:
gitlab-rake  gitlab:backup:restore    BACKUP=备份文件
gitlab-rake  gitlab:backup:restore    BACKUP=1656036972_2022_06_24_12.0.9

##重启 gitlab
gitlab-ctl restart

7. 迁移与升级

 需要遵循以下升级步骤以确保主版本升级成功:

1. 升级至之前主要版本的最新次要版本

2. 升级到目标主要版本的第一个次要版本

3. 继续升级到较新的版本

8. 邮件

8.1 配置邮箱(发件人)

1. 注册的时候 Gitlab 服务器,给用户发送邮件,激活 或者找回密码

2. 用提交合并请求的时候,负责人可以收到邮件通知

##配置文件
egrep -v '^$|#' /etc/gitlab/gitlab.rb
external_url 'http://gitlab.oldboylinux.cn'
...
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "" ##发件人信息
gitlab_rails['smtp_password'] = "???" ##授权码
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true 
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xing775288271@163.com'
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
...

##重启
gitlab-ctl reconfigure 
gitlab-ctl restart 

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

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

相关文章

【AI声音克隆整合包及教程】第二代GPT-SoVITS V2:技术、应用与伦理思考

一、引言 在当今科技迅速发展的时代&#xff0c;声音克隆技术成为人工智能领域的一个备受瞩目的分支。GPT-SoVITS V2作为一种声音克隆工具&#xff0c;正逐渐进入人们的视野&#xff0c;它在多个领域展现出巨大的潜力&#xff0c;同时也引发了一系列值得深入探讨的问题。本文旨…

重新认识HTTPS

一. 什么是 HTTPS HTTP 由于是明文传输&#xff0c;所谓的明文&#xff0c;就是说客户端与服务端通信的信息都是肉眼可见的&#xff0c;随意使用一个抓包工具都可以截获通信的内容。 所以安全上存在以下三个风险&#xff1a; 窃听风险&#xff0c;比如通信链路上可以获取通信…

Vite初始化Vue3+Typescrpt项目

初始化项目 安装 Vite 首先&#xff0c;确保你的 Node.js 版本 > 12.0.0。然后在命令行中运行以下命令来创建一个 Vite Vue 3 TypeScript 的项目模板&#xff1a; npm init vitelatest进入项目目录 创建完成后&#xff0c;进入项目目录&#xff1a; cd vue3-demo启动…

Three.js 搭建3D隧道监测

Three.js 搭建3D隧道监测 Three.js 基础元素场景scene相机carema网络模型Mesh光源light渲染器renderer控制器controls 实现3d隧道监测基础实现道路实现隧道实现多个摄像头点击模型进行属性操作实现点击模型发光效果 性能监视器stats引入使用 总结完整代码 我们将通过three.js技…

【学术会议介绍,SPIE 出版】第四届计算机图形学、人工智能与数据处理国际学术会议 (ICCAID 2024,12月13-15日)

第四届计算机图形学、人工智能与数据处理国际学术会议 2024 4th International Conference on Computer Graphics, Artificial Intelligence and Data Processing (ICCAID 2024) 重要信息 大会官网&#xff1a;www.iccaid.net 大会时间&#xff1a;2024年12月13-15日 大会地…

VScode C++配置opencv4.5.3——先赞后看,配置成功实属不易-(镜像加速环境w版和配置文件版)

前置准备&#xff1a;配置MinGW和CMake 手把手教——class1_VScode配置C环境_linux vscode cpp配置-CSDN博客文章浏览阅读398次&#xff0c;点赞4次&#xff0c;收藏6次。点击Windows x64 Installer:下载msi文件 安装完成后验证。配置gcc文件下bin环境。最后ctrlF5运行尝试。W…

机器学习 笔记

特征值提取 字典 from sklearn.extaction import DictVectorizer mDictVectorizer(sparseFalse)#sparse是否转换成三元组形式 data[], #传入字典数据 data1model.fit_transform(data) #使用API 英文特征值提取 from sklearn.feature_extraction.text import CountVe…

推荐一款好用的postman替代工具2024

Apifox 是国内团队自主研发的 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台&#xff0c;是非常好的一款 postman 替代工具。 它通过一套系统、一份数据&#xff0c;解决多个系统之间的数据同步问题。只要定义好接口文档&#xff0c;接口调试、数据 Mock、接口…

项目模块十七:HttpServer模块

一、项目模块设计思路 目的&#xff1a;实现HTTP服务器搭建 思想&#xff1a;设计请求路由表&#xff0c;记录请求方法与对应业务的处理函数映射关系。用户实现请求方法和处理函数添加到路由表&#xff0c;服务器只接受请求并调用用户的处理函数即可。 处理流程&#xff1a; …

Android音视频直播低延迟探究之:WLAN低延迟模式

Android WLAN低延迟模式 Android WLAN低延迟模式是 Android 10 引入的一种功能&#xff0c;允许对延迟敏感的应用将 Wi-Fi 配置为低延迟模式&#xff0c;以减少网络延迟&#xff0c;启动条件如下&#xff1a; Wi-Fi 已启用且设备可以访问互联网。应用已创建并获得 Wi-Fi 锁&a…

requests库如何处理 - POST请求常见的两种请求体格式:表单格式JSON格式

目录&#xff1a; 每篇前言&#xff1a;一、POST请求的两种常见请求体格式详解1. 表单格式&#xff08;form-encoded&#xff09; - 举例&#xff1a;福州搜索示例代码&#xff08;表单数据&#xff09;&#xff1a; 2. JSON格式 - 举例&#xff1a;CSDN搜索示例代码&#xff0…

HCIP-HarmonyOS Application Developer 习题(二十二)

1、用户将手机导航迁移至智能手表之后&#xff0c;智能手表如果需要获取手机传过来的数据&#xff0c;从下列哪个方法中获取? A、onCompleteContinuation() B、onStartContinuation() C、onRestoreData() D、onSaveData() 答案&#xff1a;C 分析&#xff1a;FA发起迁移后&am…

LLMs之Code:Github Spark的简介、安装和使用方法、案例应用之详细攻略

LLMs之Code&#xff1a;Github Spark的简介、安装和使用方法、案例应用之详细攻略 目录 Github Spark的简介 Github Spark的安装和使用方法 1、安装 2、使用方法 Github Spark的案例应用 Github Spark的简介 2024年10月30日&#xff0c;GitHub 重磅发布GitHub Spark 是一…

会议直击|美格智能受邀出席第三届无锡智能网联汽车生态大会,共筑汽车产业新质生产力

11月10日&#xff0c;2024世界物联网博览会分论坛——第三届无锡智能网联汽车生态大会在无锡举行&#xff0c;美格智能CEO杜国彬受邀出席&#xff0c;并参与“中央域控&#xff1a;重塑汽车智能架构的未来”主题圆桌论坛讨论&#xff0c;与行业伙伴共同探讨智能网联汽车产业领域…

HMSC联合物种分布模型在群落生态学中的贝叶斯统计分析

联合物种分布模型&#xff08;Joint Species Distribution Modelling&#xff0c;JSDM&#xff09;在生态学领域&#xff0c;特别是群落生态学中发展最为迅速&#xff0c;它在分析和解读群落生态数据的革命性和独特视角使其受到广大国内外学者的关注。在学界不同研究团队研发出…

【AI技术对电商的影响】

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Python酷库之旅-第三方库Pandas(211)

目录 一、用法精讲 986、pandas.MultiIndex.get_loc方法 986-1、语法 986-2、参数 986-3、功能 986-4、返回值 986-5、说明 986-6、用法 986-6-1、数据准备 986-6-2、代码示例 986-6-3、结果输出 987、pandas.MultiIndex.get_locs方法 987-1、语法 987-2、参数 …

【go从零单排】通道select、通道timeout、Non-Blocking Channel Operations非阻塞通道操作

&#x1f308;Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 &#x1f4d7;概念 select 语句是 Go 的一种控制结构&#xff0c;用于等待多个通道操作。它类似于 s…

Java基于SpringBoot+Vue的宠物共享平台的设计与实现(附源码,文档)

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

性能测试|JMeter接口与性能测试项目

前言 在软件开发和运维过程中&#xff0c;接口性能测试是一项至关重要的工作。JMeter作为一款开源的Java应用&#xff0c;被广泛用于进行各种性能测试&#xff0c;包括接口性能测试。本文将详细介绍如何使用JMeter进行接口性能测试的过程和步骤。 JMeter是Apache组织开发的基…