GitLab企业级代码管理仓库

GitLab服务器

前面我们已经知道Git人人都是中心,那他们怎么交互数据呢? 
使用GitHub或者码云等公共代码仓库 
使用GitLab私有仓库

 

GitLab是什么?

是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。基础功能免费,高级功能收费。

 

为什么要使用GitLab?

基础功能开源,可自行搭建  
可以进行权限控制,使得代码对部分人可见  
gitlab使用方便

 

GitLab搭建过程

主机名IP备注特殊要求
GitA 192.168.200.70 Git客户端
GitB 192.168.200.90 GitLab服务器端 内存2G

官方安装文档:https://about.gitlab.com/installation/#centos-7

GitLab国内源下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

 

初始环境

cat /etc/redhat-release

uname -r

echo "gitb 127.0.0.1" >> /etc/hosts

tail -1 /etc/hosts

ls

image_1cutskbqjoc31nfp1m1uoh21u47m.png-31kB

 

GitLab软件包下载

链接:https://pan.baidu.com/s/1TYJnh6M01MAVhLRXr-qfLw 
提取码:mqxp

 

在GitB上安装GitLab

ls

yum localinstall gitlab-ce-11.2.3-ce.0.el7.x86_64.rpm -y

yum localinstall -y代表利用yum安装本地指定的rpm包,好处是自动解决依赖问题

image_1cutt51616nt1n511mkphmtos713.png-190.1kB


image_1cutt765jj0b1c891768118hh6t1g.png-44.3kB

 

初始化GitLab,只需要执行一次

gitlab-ctl reconfigure

image_1cutt8n351gf1a7b32hv0g1ci21t.png-8.5kB

 

查看gitlab启动状态

gitlab-ctl status

image_1cuttntcv19mc1qlb1hasv445bi2a.png-58.7kB

 

查看gitlab版本号

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

image_1cutto65c62b5cd1lq5osjdj32n.png-10.9kB

 

在宿主机输入网址进行就可以访问了

http://192.168.200.88

linyaonie

接下来设置管理员初始密码,最少8位

image_1cuttotn2fdka2t1lnf1hq1h0d34.png-99.9kB

 

登陆管理员账号:root,密码:linyaonie

image_1cuttpr8m1cvprm11l6u1429tis3h.png-94kB

 

登陆后,我们就可以选择如下功能使用了

image_1cutuadqkuru1609ci418bp1j1v3u.png-110.5kB

 

GitLab中文社区版补丁包安装

GitLab中文社区:https://gitlab.com/xhang/gitlab/tree/11-2-stable-zh

 

解压GitLab中文版补丁包

ls

tar xf gitlab-11-2-stable-zh.tar.gz

image_1cutubl1no9q1po2c09mbbcv4b.png-25.6kB

 

查看系统已经安装的GitLab版本号

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

image_1cutuc59bhii1brj1q61ft0lm94o.png-10.6kB

 

查看解压后的补丁版本号

cat gitlab-11-2-stable-zh/VERSION

特别提示:补丁包版本号和安装的GitLab版本号需要一致

image_1cutucpslicvljc1fl8ej418rb55.png-20.1kB

 

备份英文版GitLab

cp -r /opt/gitlab/embedded/service/gitlab-rails{,.bak}

image_1cutuf9b5slmejtrq51fdskui5i.png-20.7kB

 

将中文补丁包的内容覆盖英文版

/bin/cp -rf gitlab-11-2-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/

特别提示:报错不需要管,因为已经设置过root密码,登陆过,所以会报错

image_1cutuvred1aa6dcr169b1pt6nf49.png-34.3kB

 

重新配置GitLab

gitlab-ctl reconfigure

image_1cutv34271tj63ne1ggdegv1a5k2s.png-8kB

 

重新启动GitLab

gitlab-ctl restart

image_1cutv8l5i103l133bdv85jhei39.png-43.2kB

 

重新刷新浏览器访问GitLab(中途掉线了,IP地址变了)

http://192.168.200.90

image_1cutvjvb44ui9kv5u6pdk1sf13m.png-103.2kB

 

使用GitLab

 

创建一个新项目

image_1cutvktk11465bdu1grn1mh43tc43.png-91.9kB


image_1cutvp5f09t71ekleqs1n6spaa4g.png-139.3kB


image_1cutvu1t566qmod1umpvlo20j4t.png-148.2kB

 

修改GitLab配置文件/etc/gitlab/gitlab.rb

我们需要修改GitLab的默认域名(因为我们是在内网搭建的GitLab) 
GitLab默认的监听端口为80,但是在企业中,这个端口经常被别的服务占用,所以我们还需要更换端口号

cp /etc/gitlab/gitlab.rb{,.bak}

cat -n /etc/gitlab/gitlab.rb.bak | sed -n '13p;943p'

vim /etc/gitlab/gitlab.rb

 
  1. 13 external_url 'http://192.168.200.90:8888'
  2. 943 nginx['listen_port'] = 8888

cat -n /etc/gitlab/gitlab.rb | sed -n '13p;943p'

image_1cuu0g8627hs1753bm9erl1ncj5a.png-31.1kB

 

重新配置GitLab

gitlab-ctl reconfigure

image_1cuu0i2941kon11k47mb1ohr19hv5n.png-8.1kB

 

重新启动GitLab

gitlab-ctl restart

image_1cuu0ure01c3is2tb7f1hsrub364.png-44.3kB

 

重新访问浏览器

http://192.168.200.90:8888

image_1cuu15trmql9buqi8411721u9h6h.png-67.8kB


image_1cuu174l4ege1smk19bu1knh1vc26u.png-138.1kB

 

尝试将本地仓库代码推送到私有GitLab

 

在GitA客户端上

cd /mycode

ls

git branch

image_1cuu2645c19qek5pss45qr2n29.png-13.3kB

 

添加远程GitLab仓库管理

git remote add origin http://192.168.200.90:8888/root/yunjisuan.git

git remote -v

image_1cuu27hti1d901q0d1eun1l71ebfm.png-30kB

 

推送本地仓库master分支到远程仓库GitLab上

git push origin master

输入账号root和密码linyaonie

image_1cuu2jlj6m8s9d1pupevtunc2j.png-35.1kB

 

推送本地仓库linux分支到远程仓库GitLab上

git branch

git checkout linux

git push origin linux

输入账号root和密码linyaonie

image_1cuu37f7u1m821raud45c3j162b4a.png-66.9kB

 

在推送本地仓库标签v1.0到远程仓库GitLab上

git tag

git push origin v1.0

输入账号root和密码linyaonie

image_1cuu2m9006721fgs19ad13uh7q73g.png-27.3kB

 

重新刷新网页并查看

image_1cuu399hc1f285sa38pv9o8da6q.png-145.7kB

 

尝试在本地仓库克隆GitLab的项目Linux分支到本地仓库

 

在GitA上创建Git工作目录

mkdir /test

cd /test

image_1cuu3gui01m5r1ehb1v0p18j37f477.png-9.9kB

 

克隆远程仓库GitLab的Linux分支

git clone -b linux http://192.168.200.90:8888/root/yunjisuan.git 
重要提醒:-b是指定分支,不写默认克隆master主分支

输入账号root和密码linyaonie

ls

cd yunjisuan

git branch

image_1cuu3ics71o761qrdup31euermh7k.png-56.2kB

 

配置GitLab的SSH密钥连接方式

 

在GitA客户端生成密钥对

ssh-keygen -t rsa -C '1123400300@qq.com' 
全部回车

cd /root/.ssh

ls

cat id_rsa.pub --->公钥内容,复制到GitLab上

 
  1. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3TJUkCCeQErxymS7o3QGAtlH00qyISMLUSLeIqEwtRrLi2MX5+mfg53sxcmuH78zazWO59c2q0+ocSK/VFuXbV2SToNVStCPwKA+UCafYkG3KxIznPlztb4rnKxuOYMDAVlM3JSlaLDCT2QUEZvp4YMsYZ3BIOMV09UQRYjVsX4Psq8hRNaTsWyM2ufIXaaS61lX3zWzx/98FuFPkJhnH0sgCdV5uE5KBiek02Gt97h8wgRZoIxFYbstklw86pVZnosaLoTACGIDU7Kvzn+UYZQy66AJuGbKj+47S2sxwvK4v5wzLEIWryHLpAeOyoQ8Giv166Ezl/ouJybZ6RCLN 1123400300@qq.com

image_1cuu4elkfso817d9mlg12bdehm8e.png-105.8kB

 

在浏览器打开GitLab

image_1cuu46hei1h2g1h5c1io1vvb109681.png-88.6kB


image_1cuu4g455etj16gb12ck1fvo1e6m8r.png-143.7kB


image_1cuu4h47do1c1a2ura7136k169898.png-116.1kB


image_1cuu4ignbgjo10j95ul17r71bmg9l.png-155.8kB

 

在GitA客户端重新进行克隆测试

mkdir /miyao

cd /miyao

git clone -b linux git@192.168.200.90:root/yunjisuan.git --->第一次需要记录主机所以需要输入yes

image_1cuu4mdrs1c04ega1n5ovbk8nvbe.png-83.4kB

 

在GitB上配置GitLab邮件服务

配置邮箱服务的用途

  • 有合并请求时间,邮件通知

  • 账号注册时,邮件验证

  • 修改密码时,通过邮件修改

配置步骤

  • 开启QQ邮箱的smtp服务

  • 修改gitlab配置

  • 测试邮件服务是否正常

 

开启GitLab服务postfix服务并开启QQ邮箱的smtp服务

systemctl start postfix

systemctl enable postfix

systemctl status postfix

image_1cuu5knpg1t5n1erfrbj1b7r4vmd2.png-135.8kB


image_1cuu53o3o1ehe1lrkvogd151rq8br.png-231.9kB


jbcgbxbsatwzhegi

image_1cuu55fg21omf391b8g4vcho5c8.png-45.4kB

 

修改GitLab配置文件/etc/gitlab/gitlab.rb

cat -n /etc/gitlab/gitlab.rb.bak | sed -n '53p;472,480p;618p'

vim /etc/gitlab/gitlab.rb

cat -n /etc/gitlab/gitlab.rb | sed -n '53p;472,480p;618p'

 
  1. 53 gitlab_rails['gitlab_email_from'] = '1123400300@qq.com' --->GitLab默认邮箱
  2. 472 gitlab_rails['smtp_enable'] = true --->开启功能
  3. 473 gitlab_rails['smtp_address'] = "smtp.qq.com" --->QQsmtp服务
  4. 474 gitlab_rails['smtp_port'] = 465
  5. 475 gitlab_rails['smtp_user_name'] = "1123400300@qq.com" --->smtp用户邮箱
  6. 476 gitlab_rails['smtp_password'] = "jbcgbxbsatwzhegi" --->开通QQsmtp时返回的字符串
  7. 477 gitlab_rails['smtp_domain'] = "qq.com" --->smtp域名
  8. 478 gitlab_rails['smtp_authentication'] = "login"
  9. 479 gitlab_rails['smtp_enable_starttls_auto'] = true
  10. 480 gitlab_rails['smtp_tls'] = true
  11. 618 user['git_user_email'] = "1123400300@qq.com" --->git用户邮箱

image_1cuu5v3qo2bo7bb1q4k1dgsrjhdf.png-94.2kB

 

重新加载GitLab配置文件

gitlab-ctl reconfigure

image_1cuu0i2941kon11k47mb1ohr19hv5n.png-8.1kB

 

重新启动GitLab服务

gitlab-ctl restart

image_1cuu7vat24t1150k7ftvv1107dds.png-47.6kB

 

进入GitLab控制台进行邮件发送测试

gitlab-rails console --->开启GitLab控制台

Notify.test_email('1123400300@qq.com','ceshi','hello').deliver_now

特别说明:Notify.test_email('收件人邮箱','邮件标题','邮件内容')

image_1cuu8c03i1uhf1a5b102e18va1l26e9.png-122.8kB

 

进入QQ邮箱并查看

image_1cuu8d7vu1lfk3tt1b0j9jubbrg6.png-182.3kB

 

GitLab的账号注册及分组

 

账户注册测试

http://192.168.200.90:8888/users/sign_in

image_1cuu8n73i1k4i1p0m11a31ks91hfkh3.png-108.4kB


image_1cuu8uant1b9trmj1hm0irb1o57hg.png-97.8kB

我们在注册的时候,用的是乱写的邮箱都能注册并登陆 
显然这在企业里是绝对不允许的

 

开启GitLab邮箱验证功能

重新登陆管理员用户:root,密码:linyaonie,我们在进行如下操作

image_1cuu97rm7105k1i0218231b1u8lrht.png-69.3kB

退出时,别忘了保存修改

image_1cuu9cqs81fh31bfbttm1ajqu9ia.png-118.8kB

 

然后我们退出管理员进行重新注册

image_1cuuanccu1b6a1j6s193v187dps4in.png-107.9kB


image_1cuuao0lo1gpk12od1idn8qh12icj4.png-57kB


image_1cuuapcvq5alr5q1o1o1hfop5djh.png-234.6kB


image_1cuub3dnv1bv4lp7j9618ie9ltju.png-98.6kB


image_1cuub3qrup5s7e62mbbbb1i7ikb.png-97.9kB

 

创建一个项目组

image_1cuubcj731e1b3a11ako9r3bbpko.png-68.1kB


image_1cuubdpop1lhuv6dbrl114r1c0ml5.png-108.4kB


image_1cuubjhurf1u70l1nso1sbm1254li.png-120.9kB

 

给组添加成员并授权

image_1cuubogig1a4opuv1ihjdnb4krmf.png-72kB


image_1cuucg4711kq1tkn11ov4sn1mgems.png-131.3kB


image_1cuucj1b3bic1t7vklre1f57ln9.png-150.6kB

Guest访客 --->只能发表评论,不能读写项目库

Reporter报告者 --->只能克隆代码(读),不能提交代码(修改)(产品测试)

Deveioper开发人员 --->可以进行代码的读写,不能分支合并但可以提交请求(普通程序员)

Master主程序员 --->可以添加项目成员,添加标签,创建和保护分支(产品经理)

Owner所有者 --->拥有所有权限(一般不用此权限)

 

添加权限成功后,GitLab会自动邮件通知这个用户

image_1cuucmq5bund1cm11v9ci43fvhnm.png-195.1kB

 

给项目组创建一个新项目

image_1cuucp81t1j461oca8vua9h8nko3.png-134.4kB


image_1cuucs8il1itobjo1vsr12egndip0.png-178.3kB


image_1cuuctubct7cjam9cd1hetva9pd.png-163.2kB

 

在GitA主机上创建环境并测试

mkdir /benet

cd /benet

touch {1..5}

git init

git remote add test http://192.168.200.90:8888/dev/benet.git

git remote -v

git add *

git commit -m "主程序员测试一下"

git push -u test master

输入账号:1123400300@qq.com,密码:linyaonie

image_1cuudcvd91ddr1cah126d1mu1j86pq.png-101.2kB

 

在网页上刷新并查看测试结果

image_1cuudeobn1n1vch11j65bmu3tqq7.png-149.5kB

posted @ 2019-07-24 15:29  L1n  阅读(2151)  评论(2编辑  收藏  举报