GitLab安装教程

GitLab安装教程

1.GitLab介绍

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

**功能:**Gitlab是一个提供代码托管,提交审核和问题跟踪的代码管理平台。对于软件工程质量管理非常重要。

版本:GitLab 分为社区版(CE) 和企业版(EE)。

配置:建议CPU2核,内存2G以上。

1.1git的优点

  • git是分布式的,svn不是。git分布式本地就可以用,可以随便保存各种历史痕迹,不用担心污染服务器,连不上服务器也能提交代码、查看log。
  • GIT分支和SVN的分支不同。分支在SVN中实际上是版本库中的一份copy,而git一个仓库是一个快照,所以git 切换、合并分支等操作更快速。
  • git有一个强大的代码仓库管理系统 - gitlab,可以很方便的管理权限、代码review,创建、管理project。

1.2GitLab与GitHub的不同

  • Github分布式在线代码托管仓库,个人版本可直接在线免费使用,企业版本收费且需要服务器安装。
  • Gitlab 分布式在线代码仓库托管软件,分社区免费版本与企业收费版本,都需要服务器安装。

1.3Gitlab的优势和应用场景

  • 开源免费,适合中小型公司将代码放置在该系统中
  • 品差异化的版本管理,离线同步以及强大分支管理功能
  • 便捷的GUI操作界面以及强大账户权限管理功能
  • 集成度很高,能够集成绝大多数的开发工具 支持内置HA,保证在高并发下仍旧实现高可用性

1.4GitLab主要服务构成

  • Nginx静态Web服务器
  • Gitlab-workhorse 轻量级的反向代理服务器
  • Gitlab-shell 用于处理Git命令和修改authorized keys列表
  • Logrotate 日志文件管理工具
  • Postgresql数据库
  • Redis 缓存服务器

1.5GitLab的工作流程

  • 创建并克隆项目
  • 创建项目某Feature分支
  • 编写代码并提交至该分支
  • 推送改项目分支至远程Gitlab服务器
  • 进行代码检查并提交Master主分支合并申请
  • 项目领导审查代码并确认合并申请

2.安装

2.1安装ssh

sudo yum install -y curl policycoreutils-pythonopenssh-server

2.2将ssh服务设置成开机启动

sudo systemctl enable sshd

2.3安装Postfix以发送邮件通知

sudo yum install postfix

设置开机启动

sudo systemctl start postfix

在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。

2.4wget用于外网下载插件

检查系统中是否已经安装wget,使用命令若出现下图wget相关版本描述则说明系统中已经安装wget 若报系统找不到命令说明wget未安装

wget -V

GitLab安装教程_第1张图片

如果没有则安装

yum -y install wget

2.5配置域名

vim /var/opt/gitlab/nginx/conf/gitlab-http.conf 

GitLab安装教程_第2张图片

补充说明:因为编译gitlab的配置 /etc/gitlab/gitlab.rb 时会重新生成这个自定义nginx 配置,所以只要 gitlab 的配置配得好,上面的nginx其实不需要自定义的。

也可以修改/etc/gitlab/gitlab.rb文件配置端口号

vim /etc/gitlab/gitlab.rb

找到external_url -> 服务器http://IP:端口

2.6添加gitlab镜像

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

2.7安装gitlab

rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

2.8修改gitlab配置文件指定服务器IP和自定义端口

vim /etc/gitlab/gitlab.rb

修改服务器IP

external_url 'http://gitlab.test.domain.com:8888'

执行配置

gitlab-ctl reconfigure

启动

gitlab-ctl start 

出现如下说明成功

ok: run: alertmanager: (pid 7324) 0s
ok: run: gitaly: (pid 7334) 0s
ok: run: gitlab-monitor: (pid 7355) 1s
ok: run: gitlab-workhorse: (pid 7360) 0s
ok: run: logrotate: (pid 7373) 1s
ok: run: nginx: (pid 7416) 0s
ok: run: node-exporter: (pid 7461) 0s
ok: run: postgres-exporter: (pid 7467) 1s
ok: run: postgresql: (pid 7473) 0s
ok: run: prometheus: (pid 7481) 1s
ok: run: redis: (pid 7492) 0s
ok: run: redis-exporter: (pid 7496) 1s
ok: run: sidekiq: (pid 7502) 0s
ok: run: unicorn: (pid 7517) 0s

修改储存位置

sudo vi /etc/gitlab/gitlab.rb

git_data_dirs -> 修改成目标位置

配置执行

sudo gitlab-ctl reconfigure 

重新启动

gitlab-ctl restart 

2.9重启gitlab并访问

gitlab-ctl restart 

gitlab常用命令

    gitlab-ctl start                 # 启动所有 gitlab 组件;
    gitlab-ctl stop                  # 停止所有 gitlab 组件;
    gitlab-ctl restart               # 重启所有 gitlab 组件;
    gitlab-ctl status                # 查看服务状态;
    vim /etc/gitlab/gitlab.rb        # 修改gitlab配置文件;
    gitlab-ctl reconfigure           # 重新编译gitlab的配置;
    gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab;
    gitlab-ctl tail                  # 查看日志;
    gitlab-ctl tail nginx/gitlab_access.log

查看gitlab版本

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

访问gitlab页面

GitLab安装教程_第3张图片

2.10安全考虑,需要创建public key认证

创建命令

ssh-keygen

一直回车

复制id_rsa.pub公钥

cat .ssh/id_rsa.pub

将公钥添加到gitlab中

GitLab安装教程_第4张图片

2.11在Gitlab的主页新建一个Porject

GitLab安装教程_第5张图片

你可能感兴趣的:(工具,GIT/SVN,gitlab)