GITLAB

简介

  • 基于GIT的源码托管解决方案
  • 基于Ruby on rails开发
  • 集成nginx postgreSQL redis sidekiq等组件
  • 资源 https://about.gitlab.com/downloads
  • 清华镜像 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

安装要求

  • centos7
  • 内存2G以上
  • 版本gitlab-ce-8.9.5

安装依赖

  • sudo yum install curl policycoreutils openssh-server openssh-clients
  • sudo systemctl enable sshd
  • sudo systemctl start sshd
  • sudo yum install postfix
  • sudo systemctl enable postfix
  • sudo systemctl start postfix
  • sudo firewall-cmd --permanent --add-service=http
  • sudo systemctl reload firewalld

开始安装

  • rpm -ivh gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm
  • 修改配置文件 /etc/gitlab/gitlab.rb    (external_url 'http://192.168.1.106',如果是域名请写域名)
  • gitlab-ctl reconfigure

常用命令

  • gitlab-ctl status
  • gitlab-ctl start
  • gitlab-ctl stop
  • gitlab-ctl restart
  • gitlab-ctl tail nginx

gitlab组件介绍

  • nginx:静态Web服务器
  • gitlab-shell:用于处理Git命令和修改authorized keys列表
  • gitlab-workhorse:轻量级的反向代理服务器
  • logrotate:日志文件管理工具
  • postgresql:数据库
  • redis:缓存数据库
  • sidekiq:用于在后台执行队列任务(异步执行)
  • unicorn:GitLab Rails应用是托管在这个服务器上面的

Gitlab目录介绍

  • /var/opt/gitlab/git-data/repositories/:库默认存储目录,代码库关系都有,建议用自带的命令备份,见下面说明
  • /opt/gitlab:应用代码和相应的依赖程序
  • /var/opt/gitlab:gitlab-ctl reconfigure命令编译后的应用数据和配置文件,不需要人为修改配置
  • /etc/gitlab:配置文件目录
  • /var/log/gitlab:此目录下存放了gitlab各个组件产生的日志
  • /var/opt/gitlab/backups/:备份文件生成的目录,只有代码,没有库关系

变更主配置文件

  • 1、gitlab-ctl reconfigure                     重置配置文件
  • 2、gitlab-ctl show-config                   验证配置文件
  • 3、gitlab-ctl restart                           重启gitlab服务

创建对象

  • 创建gourps
  • 创建用户
  • 创建项目
  • 授权项目用户

SSH KEY管理

  • 个人SSH KEY
  • Deploy KEY
  • 创建SSH KEY
  • 将公钥导入用户SSHKEY
  • 创建deploy key
  • 将deploy key导入gitlab并在项目中允许
  • ssh key文件全局唯一

Case

  • 在gitlab上创建一个库
  • 用git上传文件
  • 创建一个分支
  • 在分支上开发
  • 发出merge request
  • Accept merge

Issue

  • 创建milestone
  • 创建issue
  • 创建分支
  • 合并分支
  • Todos
  • Fix #issue_id
  • Close #issue_id
  • git commit -m "close #2"

备份管理

  • 配置文件中加入
  • gitlab_rails['backup_path'] = '/data/backup/gitlab'
  • gitlab_rails['backup_keep_time'] = 604800
  • 如果自定义备份目录需要赋予git权限
  • mkdir /data/backup/gitlab
  • chown -R git.git /data/backup/gitlab
  • 定时任务Crontab中加入
  • 0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
  • 策略建议:本地保留三到七天,在异地备份永久保存

恢复管理

  • 停止数据写入服务
  • gitlab-ctl stop unicorn
  • gitlab-ctl stop sidekiq
  • gitlab-rake gitlab:backup:restore BACKUP=1492296095
  • date -d @1492296095

恢复实例

  • 手工备份
  • /usr/bin/gitlab-rake gitlab:backup:create
  • 记录系统状态
  • 系统变更
  • 进行恢复

邮件配置

  • gitlab_rails['time_zone'] = 'Asia/Shanghai'
  • gitlab_rails['gitlab_email_enabled'] = true
  • gitlab_rails['gitlab_email_from'] = 'jokerbj@126.com'
  • gitlab_rails['gitlab_email_display_name'] = 'gitlab'
  • gitlab_rails['smtp_enable'] = true
  • gitlab_rails['smtp_address'] = "smtp.126.com"
  • gitlab_rails['smtp_port'] = 25
  • gitlab_rails['smtp_user_name'] = "jokerbj"
  • gitlab_rails['smtp_password'] = "your_password"
  • gitlab_rails['smtp_domain'] = "126.com"
  • gitlab_rails['smtp_authentication'] = "login"

优化内存

  • /etc/gitlab/gitlab.rb
  • unicorn['worker_processes'] = 4 一般是核心数就行了。官网建议+1  
原文地址:https://www.cnblogs.com/jokerbj/p/10273801.html