企业级GitLab搭建

一、简介

1.GitLab概述

是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

Ruby on Rails 是一个可以使你开发、部署、维护 web 应用程序变得简单的框架。

GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

GitLab官网:https://about.gitlab.com/

2.GitHub概述

Github概述:gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。

官网:https://github.com/

3.GitLab和GitHub的区别

相同点:

  1. 二者都是基于web的Git仓库,在很大程度上GitLab是仿照GitHub来做的;

  2. 它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所

不同点:

1、GitHub如果要使用私有仓库,是需要付费的。GitLab可以在上面创建私人的免费仓库。

2、GitLab:让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:

  • 允许免费设置仓库权限;
  • 允许用户选择分享一个project的部分代码;
  • 允许用户设置project的获取权限,进一步的提升安全性;
  • 可以设置获取到团队整体的改进进度;通
  • 过innersourcing让不在权限范围内的人访问不到该资源。

从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择。但对于开源项目而言,GitHub依然是代码托管的首选。

4.git相关概念

git:是一种版本控制系统,是一个命令,是一种工具

gitlib:是用于实现git功能的开发库

github:是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放

gitlab:是一个基于git实现的在线代码仓库托管软件,一般用于在企业内网搭建git私服

注:gitlab-ce 社区版;gitlab-ee是企业版,收费

二、GitLab平台搭建

1.实验环境

CentOS 7.4(虚拟机需要6G,不然后期运行时,内存不够用,直接报错。)

# 备份YUM文件
cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 下载HUAWEI的YUM文件
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo # 清空缓存
yum clean all # 加载YUM缓存
yum makecache

2.安装Gitlab组件

yum install curl policycoreutils openssh-server openssh-clients postfix policycoreutils-python net-tools git patch

# 开机自启POSTFIX,默认使用POSTFIX发送邮件
systemctl enable postfix
systemctl start postfix # 防火墙设置
iptables -F #清空规则
systemctl stop firewalld
systemctl disable firewalld

3.防火墙配置

4.安装GitLab

将下载的软件包gitlab-ce-10.2.3-ce.0.el7.x86_64.rpm 上传到linux系统中。

rpm -ivh gitlab-ce-10.2.3-ce.0.el7.x86_64.rpm  # 安装GitLab

配置并启动GitLab

gitlab-ctl reconfigure  # 重新配置应用程序。相当于初始化一下

可以使用gitlab-ctl管理gitlab

例如查看gitlab状态:gitlab-ctl status

5.查看端口状况

netstat -antup | grep :80

到此,GitLab安装成功!!!

默认使用nginx做为web服务器。

访问: http://IP

三、排错

总有很多人按照这个方法安装完后出现不同的错误,出现比较多的问题已经罗列。

1.出现502报错

注:如果后期web界面访问时,总报502,要把防火墙清空规则,另外内存要大于4G,不然后内存不足,也报502错误,因为内存不足会导致很卡,从而响应超时。

解决:

iptables -F #清空规则

free -m #已经使用4G以上内存

2.图片加载不完全

解决:

  1. 编辑配置文件
# 编辑GITLAB的配置文件/ETC/GITLAB/GITLAB.RB
查找Gravatar关键字

  1. 如果不开启https的话,用http就可以了,配置文件增加如下所示的plain_url修改为:
gitlab_rails['gravatar_plain_url'] = 'http://cdn.libravatar.org/avatar/%{hash}?s=%{size}&d=identicon'
#gitlab_rails['gravatar_plain_url'] = 'https://seccdn.libravatar.org/avatar/%{hash}?s=%{size}&d=identicon'

  1. 停止GitLab服务
gitlab-ctl stop
  1. 重新加载配置
gitlab-ctl reconfigure
  1. 启动服务
gitlab-ctl start
  1. 再次重新启动
gitlab-ctl restart
  1. 访问正常(默认头像正常显示)

四、登录GitLab

这里需要填入新密码,第一次登录gitlab,需要为root用户修改密码,root用户也是gitlab的超级管理员。

然后会自动跳转到登录页面

登录成功,到此GitLab就完成了!!!

五、管理GitLab

gitlab-ctl stop  # 关闭gitlab
gitlab-ctl start # 启动gitlab
gitlab-ctl restart # 重启gitlab

最终,gitlab是安装到

vim /etc/gitlab/gitlab.rb # 修改gitlab外部访问地址

改:external_url 'http://gitlab.example.com' 为:external_url 'http://ip'

注:这里必须修改,不然后后期访问时,用户到地址是:http://gitlab.example.com/xxx ,根本不能访问。 修改后获得的地址是:http://ip/xxxx

重启GitLab服务

gitlab-ctl reconfigure
gitlab-ctl restart

正常登录,形式为HTTP://IP/USER

六、汉化

其实这个版本是可以汉化的,但是,身为一名合格的PYTHON攻城狮,即使看不懂也不汉化,13格瞬间提升档次(我没有档次,所以我选择汉化!!!emo了)。

把下载好的git汉化补丁gitlab-patch-zh.tat.gz上传到LINUX并解压之

1.停止服务

gitlan-cli stop

2.备份

比较原版本号和汉化版本之前的区别,并把有区别的文件导出到/root

cd /opt/gitlab
git diff v10.2.3 v10.2.3-zh > /root/file/10.2.3-zh.diff

注意:这里必须要停止了GitLab才能比对。

3.打补丁

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

patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < /root/file/10.2.3-zh.diff  # 这个目录下存储着关于web前端相关的页面
gitlab-ctl restart #重启服务

4.登录汉化版本

企业级GitLab搭建的更多相关文章

  1. 用GitLab搭建自己的私有GitHub

    相信很多技术人员都知道有个github造福开发人员的git(分布式版本管理工具)代码管理社区,可以说现在git是开发人员的必备技能之一 本周有个朋友公司需要一个类似github的代码仓库管理系统,本人 ...

  2. Jenkins+Gitlab搭建持续集成(CI)环境

    利用Jenkins+Gitlab搭建持续集成(CI)环境 Permalink: 2013-09-08 22:04:00 by hyhx2008in intern tags: jenkins gitla ...

  3. GitLab搭建详细过程

    一.前提 系统:Centos 6.5 软件版本:gitlab-7.8.4 Selinux:关闭 防火墙规则:先清空(搭建好了后续自己添加相关放行规则) 二.yum源配置和相关依赖包 1.添加epel源 ...

  4. Ansible+Jenkins+Gitlab搭建及配置

    Ansible+Jenkins+Gitlab搭建及配置,已经生产环境使用,运行良好. 主机组文件里面好多ip敏感信息就不写了

  5. gitlab搭建与基本使用【转】

    一.git.github.gitlab的区别Git是版本控制系统,Github是在线的基于Git的代码托管服务.GitHub是2008年由Ruby on Rails编写而成.GitHub同时提供付费账 ...

  6. gitlab搭建之互备模式

    gitlab搭建之互备模式   gitlab搭建之互备模式 前言:gitlab目前默认的部署方式是本地单机部署,为了提高gitlab环境的可靠性和稳定性,必须构建一套互备搭建方案:借助gitolilt ...

  7. GitLab → 搭建私有的版本控制的托管服务平台

    开心一刻 睡着正香,媳妇用力把我晃醒说:“快起来,我爸来了.” 我一下醒了,手脚熟练的把衣服一抱,滚到床底,顺便把鞋也收了进去 媳妇蹲下无奈的说:“快出来!咱俩都结婚半年了.” 我:“对哦,搞习惯了” ...

  8. GitLab → 搭建中常遇的问题与日常维护

    开心一刻 隔壁有一个80多岁的老大爷,昨天在小区的一棵树下发现一条黑色的蛇,冻僵了,大爷善心大发,就把蛇揣在了怀里,想给它一点温暖. 今天一大早看到大爷在树上挂了一个牌子,写到:不准随地大小便! 搭建 ...

  9. gitlab 搭建(基于现有nginx)

    普通搭建请看:gitlab 搭建 一.gitlab搭建 1.添加GitLab镜像源并安装gitlab服务器 wget https://mirrors.tuna.tsinghua.edu.cn/gitl ...

  10. ubuntu12.04 gitlab搭建

    最近在尝试内部搭建gitlab,wiki这些工具...我使用的官网的gitlab-ce包一键安装,自己搭建的ubuntu12.04 server服务器. 分配253地址,放在办公室的小角落. 配置过程 ...

随机推荐

  1. [ElasticSearch] ES集群状态由非正常状态(red)恢复为正常状态(green)的思路与实践

    1 场景描述 1.1 资源与原规划 三台主机组成ES集群的规划: 集群名: xxx_elastic 172.15.3.7 es1 master 172.15.3.8 es2 (非master) 172 ...

  2. Python程序笔记20230302

    Alice.Bob 和他们的朋友们 问题主体 密码学家 Rivest.Shamir.Adleman 于1977年4月撰写了一篇论文<数字签名与公钥密码学>(On Digital Signa ...

  3. Linux(三)磁盘管理

    Linux磁盘管理 Linux中的tree工具 tree可以查看目录的树形结构,前提是需要自行安装 yum install tree -y [root@hadoop100 ~]# tree ./ ./ ...

  4. 如何获取苹果设备的UDID(iPhone/iPad UDID查询方法)

      方法一.通过电脑连接苹果手机后查询 1.在电脑上下载并安装爱思助手,安装完成后将电脑和苹果手机使用苹果数据线连接起来: ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 然后启动爱思助 ...

  5. FLV文件分析

    很久没看,做下关于FLV文件格式知识点回顾! 一.简单介绍        FLV(Flash Video)是Adobe公司推出的一种媒体封装格式.一个FLV文件,每个Tag类型都属于一个流.也就是说一 ...

  6. Python LOG-日志

    LOG https://www.cnblogs.com/yyds/p/6901864.html logging logging模块提供模块级别的函数记录日志 包括四大组件 1. 日志相关概念 日志 日 ...

  7. Git&GitHub简介与入手(一)

    一.Git版本控制 1.集中式版本控制工具:SVN(版本控制集中在服务器端,会有单点故障风险): 2.分布式版本控制工具:Git: 3.Git简史 Talk is cheap, show me the ...

  8. 2022-12-02:有a块草莓蛋糕,有b块芝士蛋糕,两人轮流拿蛋糕, 每次不管是谁只能选择在草莓蛋糕和芝士蛋糕中拿一种, 拿的数量在1~m之间随意, 谁先拿完最后的蛋糕谁赢。 返回先手赢还是后手赢。

    2022-12-02:有a块草莓蛋糕,有b块芝士蛋糕,两人轮流拿蛋糕, 每次不管是谁只能选择在草莓蛋糕和芝士蛋糕中拿一种, 拿的数量在1~m之间随意, 谁先拿完最后的蛋糕谁赢. 返回先手赢还是后手赢. ...

  9. c3p0的配置及简单应用

    首先简单了解一下JDBC和c3p0 Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸 ...

  10. 记一次 Oracle 下的 SQL 优化过程

    1. 介绍 事情是这样的,UAT 环境的测试小伙伴向我扔来一个小 bug,说是一个放大镜的查询很慢,转几分钟才出数据,我立马上开发环境试了一下,很快啊我说,放大镜的数据立马就出来了,然后我登录 UAT ...