黑猴子的家:搭建属于自己的 GitLab

1、"git" 家族成员的认识

这是一个非常容易混淆的问题

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

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

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

gitlab
是一个基于git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于github一样的系统,一般用于在企业、学校等内部网络搭建git私服

2、安装 gitlab 依赖包

[root@hadoop102 ~]# yum install curl policycoreutils openssh-server openssh-clients

[root@hadoop102 ~]# systemctl enable sshd  &&  systemctl start sshd

[root@hadoop102 ~]# yum install postfix

[root@hadoop102 ~]# systemctl enable postfix  &&  systemctl start postfix

 //永久设置http服务开放
[root@hadoop102 ~]# firewall-cmd --permanent --add-service=http   

[root@hadoop102 ~]# systemctl reload firewalld

3、安装 gitlab-ce 社区版 (yum方式,ee是企业版,收费)

[root@hadoop102 ~]# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh |sudo bash

[root@hadoop102 ~]# yum install -y gitlab-ce

4、安装 gitlab-ce 社区版(rpm包安装方式)

[root@hadoop102 ~]# wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-XXX.rpm/download

[root@hadoop102 ~]# rpm -i gitlab-ce-XXX.rpm

5、配置并开启 gitlab

//此时会输入如下很多信息,并启动好多服务
[root@hadoop102 ~]# gitlab-ctl reconfigure

6、GitLab常用命令

启动gitlab:gitlab-ctl start,默认8080端口,设置端口需要修改配置vi /etc/gitlab/gitlab.rb,external_url设置域名和端口号,没有域名则设置ip

 # 启动所有 gitlab 组件;
sudo gitlab-ctl start

# 停止所有 gitlab 组件;
sudo gitlab-ctl stop

# 重启所有 gitlab 组件;
sudo gitlab-ctl restart

# 查看服务状态;
sudo gitlab-ctl status

# 启动服务;
sudo gitlab-ctl reconfigure

# 修改默认的配置文件;
sudo vim /etc/gitlab/gitlab.rb

# 检查gitlab;
gitlab-rake gitlab:check SANITIZE=true --trace

# 查看日志;
sudo gitlab-ctl tail

7、访问 gitlab 的 hostname 主机IP映射

首次登陆会跳出设置密码的界面,设置完后自动跳转到登录界面,默认用户名root。

登陆进去后,可以更改用户名、密码等。

初始登入时,总报502,也没有防火墙,经检查不是 内存不足 就是 端口被占用

这里修改的external_url会影响到后面创建工程的git远程服务器地址,假如我修改为localhost
external_url 'http://localhost:8099',则出现下图的情况,最好还是填自己的域名或者直接ip地址。

每次修改配置文件/etc/gitlab/gitlab.rb后需要gitlab-ctl reconfigure才能生效

8、说明

缺点:这种方式虽然说简单方便,但是定制型很差,默认只能使用 postgrenginx

主配置文件:/etc/gitlab/gitlab.rb //可以自定义一些邮件服务等

日志地址:/var/log/gitlab/ // 对应各服务

服务地址:/var/opt/gitlab/ // 对应各服务的主目录

仓库地址:/var/opt/gitlab/git-data //记录项目仓库等提交信息

重置配置:gitlab-ctl reconfigure //不要乱用,会重置为最原始的配置的

重启服务:gitlab-ctl stop/start/restart //启动命令

默认安装:postgres、nginx、redis、unicorn ......

9、配置(就是点点点,熟悉熟悉这个应用)

(1)创建一个项目组groups,生成路径/var/opt/gitlab/git-data/repositories/;

(2)创建一个仓库,可用三种方式链接,新的仓库、已存在的文件夹、已存在的仓库;

创建时可导入 github、gitlab、googlecode 等其他地方的仓库,需要对方token

Git global setup

$ git config --global user.name "liufengji"

$ git config --global user.email "liufengji@aliyun.com"

Create a new repository

$ git clone git@hadoop102:/opt/module/project.git

$ cd project

$ touch README.md

$ git add README.md

$ git commit -m "add README"

$ git push -u origin master

Existing folder

$ cd existing_folder

$ git init

$ git remote add origin git@hadoop102:/opt/module/project.git

$ git add ./

$ git commit -m "init"

$ git push -u origin master

Existing Git Repository

$ cd existing_repo

$ git remote add origin git@hadoop102:/opt/module/project.git

(3)创建用户、不加入或加入项目组或者项目或项目子组

该用户在此界面上面 Users 中设置密码后登录,根据得到的链接地址 git 到仓库
当然把你这台机器上的公钥拷到 seting -> ssh key 即可省去输入如密码一项


(4)你的每次提交都会有记录在服务端 该组或该用户所在repositories中

10、注意事项

(1)端口占用问题
80 端口被系统的 nginx 占用了,所以只能监听非 80 端口;
443 端口也被系统的 nginx 占用,所以也一直没增加对 https 的支持;

(2)Docker简化配置问题
做了两个Docker容器: nginx和gitlab,相当于nginx和gitlab运行在局域网的不同主机,所以端口上没冲突。nginx是对外的服务器,它做一层反向代理到gitlab就能让gitlab提供对外的服务。
然而。。。这个做法却带来了一个新问题:gitlab需要的是22,80,443端口,80与443通过反向代理解决了,22却没办法解决。因为正常来讲,宿主机的SSH肯定也在使用,所以gitlab的SSH监听端口映射到宿主机会有冲突。

当然了,解决办法还是有的,不过非常繁琐。我们做Docker的目的不就是为了降低布署难度吗?如果使用Docker的配置比在宿主机上还繁琐,那使用起来就没太大意义了。
于是gitlab就没有放在Docker中,而是直接搭在宿主机上。

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

推荐阅读更多精彩内容