Git入门与使用 (五) GitLab介绍与安装


一、前言

  在上一篇文章中已经对IDEA集成Git,并通过图形化界面进行Git相关操作进行了讲解,下面正式进入GitLab介绍与安装相关操作的讲解。



二、GitLab 介绍

  GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,可通过 Web 界面进行访问公开的或者私人项目。它拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序 (Wall) 进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。




三、GitLab 与 GitHub的区别

相同点: 二者都是基于web的Git仓库,在很大程度上GitLab是仿造GitHub来做的,他们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。

不同点:

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

  2. GitLab让开发团队对他们的代码仓库拥有更多的控制,相对于GitHub,它有更多的特色:
    (1)允许免费设置仓库权限
    (2)允许用户选择分享一个project的部分代码
    (3)允许用户设置project的获取权限,进一步提升安全性
    (4)可以设置获取到团队整体的改进进度
    (5)通过innersourcing让不在权限范围内的人访问不到该资源



四、CentOS7操作系统安装GitLab CE (社区版)

方式一:yum安装GitLab CE (社区版)

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

提示:

    1. 以下步骤请以root用户运行指令,如果不是以root用户运行,请在指令的最前面加上sudo,表示以系统管理者(root) 的身份执行指令

扫描二维码关注公众号,回复: 8853147 查看本文章

     2. 由于GitLab启动比较消耗内存,所以在安装GitLab之前,建议把虚拟机的内存调大一些,设置为4G即可

     3. 由于使用yum安装的GitLab为最新版本,没有对应的中文汉化版本,如果想使用汉化版的GitLab可以使用第二种方式安装 或者 安装与中文汉化版对应的GitLab版本

1、关闭Firewalld防火墙和SELinux

为了安装方便,这里选择关闭Firewalld防火墙和SELinux。实际生产中,则不这样子做,而是开放指定的端口,以增强安全性

//1、关闭Firewalld防火墙
systemctl stop firewalld.service  // 停止firewalld服务
systemctl disable firewalld.service  // 禁止firewalld开机启动

//2、关闭SELinux
vim /etc/sysconfig/selinux       //编辑selinux文件
SELINUX=disabled         //把文件中的SELINUX=enforcing 改成 SELINUX=disabled 即可

//3、重启linux
reboot

2、安装GitLab必要的依赖

//安装policycoreutils-python 和 openssh-server依赖
yum install -y curl policycoreutils-python openssh-server




3、开启sshd服务,并加入到开机启动

systemctl enable sshd   //设置sshd服务开机启动
systemctl start sshd   //启动sshd服务



4、安装Postfix以发送电子邮件通知

//安装Postfix
yum install postfix





5、开启Postfix,并加入到开机启动

systemctl enable postfix  //设置postfix开机启动
systemctl start postfix   //启动postfix



6、添加清华GitLab CE (社区版) 源

官方文档:https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/

由于GitLab的安装包和源码在国内的下载速度不尽人意,所以这里选择使用清华的GitLab CE源

//1、编辑gitlab-ce.repo文件
vim /etc/yum.repos.d/gitlab-ce.repo

//2、添加如下内容
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1




7、更新本地yum缓存

yum makecache



8、安装GitLab CE(社区版),GitLab提供了两个版本:社区版(CE,免费) 和 企业版(EE,收费)

yum install gitlab-ce





9、修改gitlab.rb配置文件

vim /etc/gitlab/gitlab.rb

(1)、修改nginx[‘listen_port’]端口号 (需要去掉前面的“#”注释),默认为80端口,由于80端口可能会与Linux服务器上的Nginx端口冲突,所以这里我修改为4399端口 (端口号的修改可以任意,只要不与其他端口号冲突即可)

nginx['listen_port'] = nil
修改为
nginx['listen_port'] = 4399

(2)、修改external_url属性,修改为Linux服务器的域名或者ip地址,由于上一步修改了nginx[‘listen_port’]端口号,而external_url默认使用80端口,所以这里的external_url要加上我们上一步修改的端口号

external_url 'http://gitlab.example.com'
修改为
external_url 'http://Linux服务器ip地址:端口号'

(3)、修改ssh协议所使用的访问地址和端口号 (由于ssh协议默认使用的端口号为22,会与宿主机的ssh协议端口号冲突,所以这里我修改为2222端口,端口号的修改可以任意,只要不与其他端口号冲突即可),并修改时区 (默认使用的是’UTC’,相比于北京时间会少8个小时,所以这里我们修改为’Asia/Shanghai’)

//1、修改ssh协议所使用的访问地址 (需要去掉前面的注释)
gitlab_rails['gitlab_ssh_host'] = 'ssh.host_example.com'
修改为
gitlab_rails['gitlab_ssh_host'] = 'Linux服务器ip地址'

//2、修改ssh协议使用的端口号 (需要去掉前面的注释)
gitlab_rails['gitlab_shell_ssh_port'] = 22
修改为
gitlab_rails['gitlab_shell_ssh_port'] = 2222

//3、修改时区 (需要去掉前面的注释)
gitlab_rails['time_zone'] = 'UTC'
修改为
gitlab_rails['time_zone'] = 'Asia/Shanghai'


(4)、修改unicorn[‘port’]端口号 (需要去掉前面的“#”注释),默认为8080端口,由于8080端口可能会与Linux服务器上的Tomcat端口冲突,所以这里我修改为8888端口 (端口号的修改可以任意,只要不与其他端口号冲突即可)

unicorn['port'] = 8080
修改为
unicorn['port'] = 8888

(5)、为GitLab设置个人邮箱提醒服务 (以QQ邮箱为例),QQ授权码获取方式

//1、搜索到Email Settings
gitlab_rails['gitlab_email_enabled'] = true   //打开邮箱功能
gitlab_rails['gitlab_email_from'] = '你的qq邮箱'  //这里是自己发送文件的邮箱地址

//2、搜索到GitLab email server settings
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "你的qq邮箱"   //这个是给别人发送邮件的地址
gitlab_rails['smtp_password'] = "qq邮箱授权码"    
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

需要注意的是:gitlab_rails['smtp_user_name'] 与 gitlab_rails['gitlab_email_from']需要设置为相同的qq邮箱




10、重新加载gitlab.rb配置文件

gitlab-ctl reconfigure

重新加载gitlab.rb配置文件期间会一直action run,过程会有点久,直到看见最后一行gitlab Reconfigured!提示,则表示重新加载配置成功


11、重启GitLab服务

gitlab-ctl restart

//其他常用命令
gitlab-ctl start  //启动所有 gitlab 组件
gitlab-ctl stop  //停止所有 gitlab 组件
gitlab-ctl status //查看 gitlab 服务状态
gitlab-rails console //进入控制台
gitlab-ctl tail //查看 gitlab 运行日志



12、查看端口使用情况

netstat -ntpl

在这里插入图片描述

13、测试邮箱服务是否可用

//进入控制台
gitlab-rails console

//执行发送邮件测试命令
Notify.test_email("你的qq邮箱","title","gitlab").deliver_now




14、访问GitLab

打开浏览器,访问GitLab,GitLab的访问地址为你在gitlab.rb配置文件中设置的external_url地址 (这里我的为 http://192.168.198.124:4399),将会跳转到设置密码界面


14.1、为root用户设置密码

在设置密码界面中,为root用户设置密码,GitLab默认用户为root
在这里插入图片描述

14.2、登录并访问GitLab

输入用户名和密码,用户名默认为root用户,密码为上一步设置的密码





方式二:Docker安装汉化版GitLab CE (社区版)

DockerHub官方安装文档:https://hub.docker.com/r/twang2218/gitlab-ce-zh/
GitLab官方安装文档:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/docker/README.md

1、拉取GitLab中文版镜像

//默认为最新版本,即latest版本
docker pull twang2218/gitlab-ce-zh

2、创建三个文件夹,以便挂载容器数据卷

mkdir -p /root/gitlab/config  //配置
mkdir -p /root/gitlab/logs   //日志
mkdir -p /root/gitlab/data  //数据
本地位置 容器位置 用途
/root/gitlab/config /etc/gitlab 用于存储GitLab配置文件
/root/gitlab/logs /var/log/gitlab 用于存储GitLab日志
/root/gitlab/data /var/opt/gitlab 用于存储应用程序数据

3、启动Gitlab镜像

docker run --detach \
  --hostname 宿主机ip地址 \
  --publish 8443:443 --publish 4399:80 --publish 2222:22 \
  --name gitlab \
  --restart unless-stopped \
  --volume /root/gitlab/config:/etc/gitlab \
  --volume /root/gitlab/logs:/var/log/gitlab \
  --volume /root/gitlab/data:/var/opt/gitlab \
  twang2218/gitlab-ce-zh

--detach:表示后台运行容器

--hostname:设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts

--publish:指定端口映射,分别是https、http和ssh的端口映射

--name:设置容器名称

--restart:设置容器的重启策略

  • no:默认策略,在容器退出时不重启容器
  • on-failure:在容器非正常退出时(退出状态非0),才会重启容器
  • on-failure:3:在容器非正常退出时重启容器,最多重启3次
  • always:在容器退出时总是重启容器
  • unless-stopped:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

--volume:挂载容器数据卷

4、进入容器内部,修改gitlab.rb配置文件

//1、进入容器内部
docker exec -it gitlab /bin/bash

//2、修改gitlab.rb配置文件
vi /etc/gitlab/gitlab.rb

//3、需要修改的内容
external_url 'GENERATED_EXTERNAL_URL'
修改为
external_url 'http://Linux服务器ip地址'
--------------------------------------------------------
gitlab_rails['gitlab_ssh_host'] = 'ssh.host_example.com'
gitlab_rails['time_zone'] = 'UTC'
修改为
gitlab_rails['gitlab_ssh_host'] = 'Linux服务器ip地址'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
--------------------------------------------------------
//搜索到Email Settings
gitlab_rails['gitlab_email_enabled'] = true   //打开邮箱功能
gitlab_rails['gitlab_email_from'] = '你的qq邮箱'  //这里是自己发送文件的邮箱地址

//搜索到GitLab email server settings
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "你的qq邮箱"   //这个是给别人发送邮件的地址
gitlab_rails['smtp_password'] = "qq邮箱授权码"    
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

注意:这里不需要修改端口号,在启动Gitlab镜像时,已经做了端口映射,避免了端口冲突

5、重新加载gitlab.rb配置文件并退出容器

//1、重新加载配置文件
gitlab-ctl reconfigure

//2、退出但不停止容器,快捷键为
ctrl + p + q

重新加载gitlab.rb配置文件期间会一直action run,过程会有点久,直到看见最后一行gitlab Reconfigured!提示,则表示重新加载配置成功

6、访问GitLab

打开浏览器,访问GitLab,GitLab的访问地址为你在gitlab.rb配置文件中设置的external_url地址外加 80端口对应的宿主机端口映射 (这里我的为 http://192.168.198.124:4399),将会跳转到设置密码界面,可以看到汉化版的GitLab被安装成功



Git入门与使用系列文章列表:

Git入门与使用 (一) Git介绍与安装
Git入门与使用 (二) Git相关命令的介绍与使用
Git入门与使用 (三) 使用GitHub进行代码托管的相关操作
Git入门与使用 (四) IDEA集成Git,并通过图形化界面进行Git相关操作
Git入门与使用 (五) GitLab介绍与安装




                   如果有遇到不懂或者有问题时,可以扫描下方二维码,欢迎进群交流与分享,希望能够跟大家交流学习!

发布了76 篇原创文章 · 获赞 253 · 访问量 43万+

猜你喜欢

转载自blog.csdn.net/qq_39135287/article/details/103837543