一.简介

GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

GitLab与GitHub的不同

  • Github分布式在线代码托管仓库,个人版本可直接在线免费使用,企业版本收费且需要服务器安装
  • Gitlab 分布式在线代码仓库托管软件,分社区免费版本与企业收费版本,都需要服务器安装.

Gitlab的优势和应用场景

  • 开源免费,适合中小型公司将代码放置在该系统中
  • 品差异化的版本管理,离线同步以及强大分支管理功能
  • 便捷的GUI操作界面以及强大账户权限管理功能
  • 集成度很高,能够集成绝大多数的开发工具
  • 支持内置HA,保证在高并发下仍旧实现高可用性

GitLab主要服务构成

  • Nginx静态Web服务器
  • Gitlab-workhorse 轻量级的反向代理服务器
  • Gitlab-shell 用于处理Git命令和修改authorized keys列表
  • Logrotate 日志文件管理工具
  • Postgresql数据库
  • Redis 缓存服务器

GitLab的工作流程

  • 创建并克隆项目
  • 创建项目某Feature分支
  • 编写代码并提交至该分支
  • 推送改项目分支至远程Gitlab服务器
  • 进行代码检查并提交Master主分支合并申请
  • 项目领导审查代码并确认合并申请

二.程序部署

部署gitlab

注意: gitlab需要4g内存支持

1.配置gitlab源

vim /etc/yum.repos.d/gitlab_gitlab-ce.repo

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

2.安装gitlab的依赖项

yum install -y curl policycoreutils-python openssh-server

3.启动postfix,并设置为开机启动

systemctl start postfix

systemctl enable postfix

4.设置防火墙 (如果未使用防火墙可以跳过)

firewall-cmd --add-service=http --permanent

systemctl reload firewalld

5.获取gitlab的rpm包

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.2-ce.0.el7.x86_64.rpm

6.安装rpm包

rpm -i gitlab-ce-10.0.2-ce.0.el7.x86_64.rpm

7.执行指令配置gitlab

gitlab-ctl reconfigure

8.修改配置文件gitlab.rb,将external_url变量的地址修改为gitlab所在centos的ip地址。

vim /etc/gitlab/gitlab.rb

因为修改了配置文件,故需要重新加载配置内容。

gitlab-ctl reconfigure

gitlab-ctl restart

9.查看gitlab版本

head -1 /opt/gitlab/version-manifest.txt

汉化gitlab

1.安装git

yum install -y git

2.克隆获取汉化版本库,下载最新的汉化包

git clone https://gitlab.com/xhang/gitlab.git

如果是要下载老版本的汉化包,需要加上老版本的分支,比如今天已经是10.0.4,我依旧想下载10.0.2,可以运行下面的语句

git clone https://gitlab.com/xhang/gitlab.git -b v10.0.2-zh

3.查看该汉化补丁的版本

cat gitlab/VERSION

4.停止gitlab服务

gitlab-ctl stop

5.切换到gitlab汉化包所在的目录(即步骤二获取的汉化版gitlab)

cd /root/gitlab

6.比较汉化标签和原标签,导出 patch 用的 diff 文件到/root下

git diff v10.0.2 v10.0.2-zh > ../10.0.2-zh.diff

7.回到/root目录

cd /root

8.将10.0.2-zh.diff作为补丁更新到gitlab中

yum install patch -y

patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 10.0.2-zh.diff

9.启动gitlab

gitlab-ctl start

10.重新配置gitlab

gitlab-ctl reconfigure

三.设置管理员密码

管理员账号登录的用户名:root(虽然登录后管理员的用户名为Administrator,但是实际登录的用户名是root)

网页方式

浏览器访问gitlab所在的ip,输入密码后点击 “Change your password”(如果进行汉化,点击“修改密码”)。

指令方式

执行命令

gitlab-rails console production

稍等一会后会出现

irb(main):001:0> user = User.where(id: 1).first // id为1的是超级管理员

irb(main):002:0>user.password = 'yourpassword' // 密码必须至少8个字符

irb(main):003:0>user.save! // 如没有问题 返回true

exit // 退出

centos部署代码仓库gitlab的更多相关文章

  1. openshift 平台上部署 gitlab代码仓库服务

    背景: 本文档将以在openshift 平台上部署 gitlab 服务来验证集群各个服务组件的可用性以及熟悉openshift的使用方法.服务部署方式可以多种多样,灵活部署.本篇以常见的镜像部署方式来 ...

  2. Git系列②之部署企业级开源仓库gitlab服务器

    Git系列②之部署企业级开源仓库gitlab服务器 上一篇我们介绍了github的常见使用方法,下面开始部署本地开源仓库gitlab GitLab 是一个用于仓库管理系统的开源项目. 1.安装配置gi ...

  3. 关于gitlab+jenkins自动部署代码的实现

    本人PHP开发者,项目组大多是PHP,少量java项目. 因公司目前服务器和项目的管理比较混乱,与领导商量后,决定尝试 gitlab+jenkins自动化部署(之前用的svn FTP手动部署代码),解 ...

  4. 私有化轻量级持续集成部署方案--04-私有代码仓库服务-Gitea

    提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 企业级最流行的私有代码仓库是 Gitlab, 一开始我也打算部署 Gitlab作为私有代码仓库. 但部署完 d 成后 ...

  5. Git 安装及用法 github 代码发布 gitlab私有仓库的搭建

    版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 这个版本控制软件,有 svn还有git,是一个工具. git是由linux的作者开发的 git是一个分布式版本控制系统 ...

  6. 持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成]

    转载:https://www.abcdocker.com/abcdocker/2065 一.代码流水线管理 Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目.如果使用jenkin ...

  7. 持续集成与自动化部署---代码流水线管理及Jenkins和gitlab集成

    1.代码流水线管理 Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目.如果使用jenkins构建完成后,开发构建项目需要一项一项点击,比较麻烦.所以出现pipeline名词. 代 ...

  8. 私有仓库GitLab快速入门篇

    私有仓库GitLab快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 安装文档请参考官网:https://about.gitlab.com/installation/#ce ...

  9. 开源GIT仓库-----gitlab

    简介:GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的功能,能够浏览源代码 ...

随机推荐

  1. python实现对象测量

    目录: 问题,轮廓找到了,如何去计算对象的弧长与面积(闭合),多边形拟合,几何矩的计算等 (一)对象的弧长与面积 (二)多边形拟合 (三)几何矩的计算 (四)获取图像的外接矩形boundingRect ...

  2. [hdu7022]Jsljgame

    先考虑$x=y$的情况,此时即是一个平等博弈,因此考虑$sg$函数 具体的,有$sg(n)=\begin{cases}0&(n=0)\\mex(\{sg(n-i)\mid 1\le i\le ...

  3. [loj3075]组合数求和

    Subtask1:​​​$m,nd\le 2\times 10^{3}$ 对$M$质因数分解,假设$M=\prod_{i=1}^{k}p_{i}^{\alpha_{i}}$(其中$p_{i}$为素数) ...

  4. [bzoj1084]最大子矩阵

    用f[i][j][k]表示第一行前i个数,第二行前j个数选k个子矩形的答案,考虑转移:1.在第一行/第二行选择一个矩形2.当i=j时,可以选择一个两行的矩形注意要特判m=1的情况 1 #include ...

  5. [bzoj4651]网格

    考虑将最上中最左的跳蚤孤立,容易发现他的上面和左面没有跳蚤,因此只需要将他的右边和下边替换掉就可以了答案为-1有两种情况:1.c>=n*m-1;2.c=n*m-2且这两只跳蚤相邻对于其他情况,将 ...

  6. C/C++ Qt Dialog 对话框组件应用

    在Qt中对话框分为两种形式,一种是标准对话框,另一种则是自定义对话框,在一般开发过程中标准对话框使用是最多的了,标准对话框一般包括 QMessageBox,QInputDialog,QFileDial ...

  7. Kubernetes Deployment 最佳实践

    零.示例 首先给出一个 Deployment+HPA+ PodDisruptionBudget 的完整 demo,后面再详细介绍其中的每一个部分: apiVersion: apps/v1 kind: ...

  8. Roslyn+T4+EnvDTE项目完全自动化 (一)

    前言 以前做一个金融软件项目,软件要英文.繁体版本,开始甲方弄了好几个月,手动一条一条替换,发现很容易出错,因为有金融专业术语,字符串在不同语义要特殊处理,第三方工具没法使用.最后我用Roslyn写了 ...

  9. 小白秒懂的Windows下搭建基于pytorch的深度学习环境

    配置环境总体思路 1.依据python版本选择对应Anaconda版本: 2.依据显卡驱动版本选择对应的CUDA版本: 3.依据CUDA版本选择对应的cudnn和pytorch版本. 一.Anacon ...

  10. CF1578J Just Kingdom

    考虑一个点被填满则他需要从其父亲得到\(q_u = \sum_{v = u\ or\ v \in son_u}m_v\) 那么考虑如何这样操作. 我当时world final做的时候,是从上往下遍历, ...