Git和Gitlab部署

说明

(背景:加入新公司后,发现新公司仍然在使用svn进行代码管理,因此整理输出该文档用于指导部署gitlab)。

本文档描述git/gitlab的安装部署及使用。

以下内容大部分来源于互联网。

基本概念

Git/gitlab/github是什么

Git是一款分布式的代码管理工具,具有精巧,快速,分布式的特点,不仅可以用于团队协作开发,也可以用于个人不同分支(版本)管理上。最初由linux内核开发者Linus Torvalds开发用于linux内核代码的管理。当前很多著名公司的开发协作都通过git进行管理。

Github是基于git发展起来的一个公共的代码托管网站,当前已经有超过5000万的用户通过github托管自己的代码(国内有类似的托管网站https://gitee.com/,由于受美国对中国的打压,2020年gitee用户数量有很大发展,超过600万,有不少小型开发团队将代码从github迁移回gitee)。

Github和gitee都属于第三方代码托管,对于托管在上面的代码,github和gitee有完全的查看权限,具有代码泄露的风险。

Gitlab是基于git发展的一款本地软件,可以部署在企业内部提供类似于github和gitee的功能,可以支持代码存储,访问,review,bug跟踪等。

Gitlab部署

Ubuntu下安装过程如下

1:执行如下命令信任GPG密钥

curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null

2:编辑/etc/apt/sources.list文件,添加国内gitlab镜像源地址(ubuntu 18.04)

deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu bionic main

3:执行apt-get update更新软件源

4:apt-get install gitlab-ce安装gitlab

5:安装完成后,修改/etc/gitlab/gitlab.rb配置文件中的external_url为本地提供的访问url地址

6:执行gitlab-ctl reconfigure重新进行配置。

7:执行gitlab-ctl start启动gitlab服务。

8:通过external_url访问gitlab服务,第一次访问需要为root用户设置密码。

Gitlab其他配置

管理员邮箱设置

管理员邮箱设置,可以用于邮件发送

修改/etc/gitlab/gitlab.rb配置文件中如下内容

执行gitlab-rails console以及Notify.test_email('lw@xx.com',

'test_subject', 'This is a first test email').deliver_now验证配置是否成功。

常用操作

查看当前运行状态

gitlab-ctl status

查看运行版本

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

gitlab-runner  --version

管理员添加其他用户

管理员登陆后,参考以下步骤添加其他用户,添加完成后系统会自动发送邮件给新添加用户进行密码修改。

Gitlab备份和恢复

通过如下方式进行gitlab运行文件的备份和恢复

1:执行gitlab-backup create命令进行备份,备份后结果保存在/var/opt/gitlab/backups目录下,该备份文件并不包括gitlab.rb和gitlab-secrets.json两个配置文件,如果要完整恢复到之前的运行状态,需要手工备份这两个单独的文件。

2:执行gitlab-backup restore force=yesBACKUP=1597812374_2020_08_19_12.10.5用于备份内容的恢复。

3:执行gitlab-ctl

reconfigure进行重配置以便所有内容都可以完整恢复

Gitlab工作原理

Gitlab权限管理

Gitlab中的人员角色有以下几种角色

Guest:可以创建issue, 发表评论,但不能读写版本库。

Reporter:Git项目测试人员,可以克隆代码,但不能提交代码。

Developer:Git项目开发人员,可以clone,提交,push代码。

Maintainer:Git项目管理员,可以创建项目,添加tag, 保护分支,添加项目成员,编辑项目(核心开发人员可以赋予该权限)。

Owner:Git系统管理员,拥有至高无上的权限。开发组leader可以赋予该权限。

项目权限

      项目权限分为以下三类

      Private:只有组员可以看到。

      Internal:登陆后的用户才能开到。

                Public:所有人都可以看到。

Gitlab分支管理策略

使用Gitlab管理代码,在多人协作时的开发策略一般如下

1:首先创建一个master分支,整个项目不会在master分支上进行开发,但是项目一定是以master分支为主线进行开发。在项目需要release时,基于master分支打tag进行标记。

2:基于master创建一个develop分支。首次创建时,需要从master分支拉取代码,保持开发时代码和最新上线代码相同。

3:在进行某个特性开发时,基于develop分支创建feature分支,实际的代码开发将基于该feature分支进行,不强制提交到远程仓库,在开发完成后,代码同步到develop分支后可以删除。

4:release分支,当所有特性代码都提交到develop分支并且测试通过后,可以从的develop分支创建release分支,release分支为版本的发布而创建,此时可以在release分支上进行一些配置文件版本等小的修改,从而把develop分支空闲出来进行下一轮开发。

Gitlab目录结构

Gitlab在部署完成后,有如下的目录结构

/opt/gitlab主目录

/etc/gitlab  配置目录,保存在运行时配置文件

/var/opt/gitlab  各个执行组件所在位置

/var/log/gitlab  运行日志所在目录

Gitlab的核心组件

Gitlab包括以下核心组件

                Nginx:反向代理服务器

                Postgresql:文件数据库

                Redis:缓存

                Unicorn:Ruby开发的web服务器。

                Sidekiq:Ruby开发的轻量级异步任务组件。

                Logrotate:日志组件

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容