IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> gitlab镜像仓库设置及自动同步代码到服务器实现方式 -> 正文阅读

[系统运维]gitlab镜像仓库设置及自动同步代码到服务器实现方式

描述

最近新接了一个需求,有两个不同的gitlab仓库,隶属于不同的部门,我们需要将其他部门的gitlab代码仓库实时或定时同步到我们的gitlab代码仓库上.

思路

网上调研了下实现方案, 大概有两种

  • 方案一
    直接设置镜像仓库
  • 方案二
    通过gitlab webhooks + jenkins + rsync或者git命令同步

实现方式

1. 设置镜像镜像仓库

进入代码仓库之后点击仓库=>镜像仓库
=>展开=>Git仓库URL=>填入http://<用户名>@<仓库域名.git>格式=>在密码框输入对应用户的密码=>点击镜像仓库保存设置
请添加图片描述

需要注意的是,镜像仓库需要该用户又读写分支的权限,具体权限可以在分支保护选项下面设置, 另外gitlab的CE版只能做Push镜像,而EE则支持Push和Pull镜像两种,所以依据仔细需求选择

通过gitlab webhooks + jenkins + git命令同步

webhooks喝Jenkins设置请参考 Gitlab利用Webhook实现Push代码后的jenkins自动构建
其中的shell脚本可自己替换城git命令方式实现

Git如何同步多个远程仓库

新增关联远端库

# git remote add <name> <git-url>
git remote add gitlab_origin git@gitlab.com:opendvd/dual_push.git

使用使用git remote -v来查看关联

gitlab_origin	git@gitlab.com:opendvd/dual_push.git (fetch)
gitlab_origin	git@gitlab.com:opendvd/dual_push.git (push)
origin	git@github.com:opendvd/dual_push.git (fetch)
origin	git@github.com:opendvd/dual_push.git (push)

push

git add dual_push.txt
git commit -m "First commit."
git push -u origin master # git push <repo> <branch>
git push -u gitlab_origin master # git push <repo> <branch>

合并push

上面的方法表明如果要push两个库,需要分别push两次,下面介绍的方法,可以一次性push到两个仓库。
方法:将另一个远程库的URL添加到现有的远程仓库的URL

git add dual_push.txt
git commit -m "First commit."
git remote add origin git@github.com:opendvd/dual_push.git
# 关联 git remote set-url -add <name> <url> 
git remote set-url --add origin git@gitlab.com:opendvd/dual_push.git

## push
git push -u origin master

更多详情请参考 Git如何同步多个远程仓库

其他

我在镜像仓库同步的时候还遇到了Url is blocked: Requests to the local network are not allowed的错

解决方案:

进入 admin=> area
在这里插入图片描述

进入 settings=>network
在这里插入图片描述

保存设置后,重新进入项目并设置 webhook 保存即可成功

参考

1.实用小帖:利用Gitlab备份代码仓库,以及镜像同步
2. Gitlab利用Webhook实现Push代码后的jenkins自动构建
3. Git如何同步多个远程仓库
4. gitlab - 解决添加webhook提示Url is blocked: Requests to the local network are not allowed的问题.

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:45:44  更:2021-11-22 12:47:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:56:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码