第四阶段
时 间:2023年8月21日
参加人:全班人员
内 容:
Gitlab服务部署及应用
目录
一、Gitlab简介
二、Gitlab工作原理
三、Gitlab服务构成
四、Gitlab的优点
五、Gitlab环境部署
(一)安装部署
(二)Web操作:
(三)测试:
一、Gitlab简介
Gitlab 是一个基于Git实现的WEB代码仓库托管软件,你可以用Gitlab自己搭建一个类似于Github一样的代码仓库,一般使用gitlab搭建私有代码仓库主要是用在公司的内部代码管理。
Gitlab 功能是能够对代码的提交审核和问题跟踪,这个对于软件工程(代码)质量的管理是至关重要的。
Gitlab分为社区版(CE)和企业版(EE)。大多数的公司还是会选择社区版。部署Gitlab是对服务器有配置要求的建议是CPU两核,内存4G以上。
二、Gitlab工作原理
gitlab的原理其实就是git的工作原理,GitHub也是基于git实现的
Remote远程仓库:
远程仓库的内容可能被分布在多个地点的处于协作关系的本地仓库修改,因此它可以与本地仓库同步,也可以不同步,但是它的内容是最旧的。
Repository本地仓库:
这里面保存了被提交过的代码各个版本,比起工作区和暂存区的内容,它的内容会旧一些,git commit 后同步index的目录树到本地仓库,方便下一步通过git push同步本地仓库与远程仓库的同步。
index暂存区:
git目录下的index文件,暂存区会记录git add 添加文件的相关信息(文件名、大小),不保存文件实体,通过id指向每个文件的实体,可以使用git status查看暂存区的状态,暂存区标记了你当前工作区中哪些内容是被git管理的。当你完成某个需求或者功能后需要提交代码,那么第一步就是通过git add 先提交到暂存区。
workspace工作区:
程序员进行开发改动的地方,是你当前看到的,内容也是最新的。平常我们开发就是拷贝远程仓库中的分支,基于该分支进行开发,在开发的过程就是在工作区的操作。
总结:
任何对象都是在工作区中诞生和修改的;
任何修改都是从进入index区才开始被版本控制的;
只有把修改的代码提交到本地仓库,该修改才能在仓库中留下痕迹;
与协助者分享本地的修改,可以push到远程仓库来共享;
三、Gitlab服务构成
Nginx:静态Web服务器
gitlab-shell:用于处理Git命令和修改authorized keys列表
gitlab-workhorse:轻量级的反向代理服务器(这个是个敏捷的反向代理,它会处理一些大的HTTP请求,比如文件的上传下载,其他的请求会反向代理给Gitlab Rails应用)
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列的任务
unicorn:Gitlab Rails应用是托管在这个服务器上面的
四、Gitlab的优点
git是分布式的,svn不是
git分布式本地就可以用,可以随便保存各种历史痕迹,不用担心污染服务器,连不上服务器也能提交代码、查看log。
GIT分支和SVN的分支不同
分支在SVN中实际上是版本库中的一份copy,而git一个仓库是一个快照,所以git 切换、合并分支等操作更快速。
git有一个强大的代码仓库管理系统 – gitlab
可以很方便的管理权限、代码review,创建、管理project
五、Gitlab环境部署
(一)安装部署
1、主机名设置
[root@localhost ~]# hostname gitlab
[root@localhost ~]# bash
2、安装依赖包
[root@gitlab ~]# yum -y install curl openssh-server openssh-clients postfix cronie policycoreutils-python
3、启动postfix,并设置开机自启
[root@gitlab ~]# systemctl start postfix
[root@gitlab ~]# systemctl enable postfix
4、设置防火墙
[root@gitlab ~]# systemctl stop firewalld
[root@gitlab ~]# iptables -F
[root@gitlab ~]# setenforce 0
5、下载安装gitlab rpm包
清华开源镜像站:清华大学开源软件镜像站 | Tsinghua Open Source Mirror
[root@gitlab ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm
[root@gitlab ~]# rpm -ivh gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm
6、修改配置文件/etc/gitlab/gitlab.rb,生产环境下可以跟据需求修改
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
13 external_url 'http://192.168.200.111'
7、重新加载配置文件
[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl restart
[root@gitlab ~]# netstat -lnpt | grep :80
启动:gitlib-ctl start 关闭:gitlab-ctl stop
重启:gitlab-ctl restart
重载配置:gitlab-ctl reconfigure
查看状态:gitlab-ctl status
8、查看gitlab版本
[root@gitlab ~]# head -1 /opt/gitlab/version-manifest.txt
(二)Web操作:
1、浏览器登录 GitLab,输入 http://192.168.100.131
输入密码
2、密码需要八位数
3、登录:root,12345678
4、登录成功后即可进入 GitLab 首页
5、创建新的项目
6、创建名称和权限
7、添加readme
8、创建测试内容:It's gitlab test,而后点绿色键添加
(三)测试:
1、客户机测试:
[root@localhost ~]# hostname jenkins
[root@localhost ~]# bash
[root@jenkins ~]# git config --global user.name "jenkins"
[root@jenkins ~]# git config --global user.email "jenkins@test.com"
[root@jenkins ~]# git config --global color.ui true
[root@jenkins ~]# git config --list
[root@jenkins ~]# git clone http://192.168.200.111/root/huyang.git
[root@jenkins ~]# ls huyang/
[root@jenkins ~]# cat huyang/README.md
增加内容测试:
获取:(删除之前的内容,重新克隆)
2、设置发邮件功能
1)修改配置文件
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
2)#修改gitlab配置的发信人
3)重新加载配置并重启服务
[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl restart
4)测试邮件:
[root@gitlab ~]# gitlab-rails console -e production
irb(main):001:0> Notify.test_email('13363571949@163.com', 'Message Subject', 'Message Body').deliver_now
邮箱通知:
5)web设置邮箱,发送邮箱提醒!
邮箱通知