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-12.0.3

安装依赖(https://about.gitlab.com/install/#centos-7)

  • sudo yum install -y curl policycoreutils-python openssh-server perl
  • sudo yum install -y postfix

开始安装

  • yum localinstall -y gitlab-ce-12.0.3-ce.0.el7.x86_64.rpm
  • 软件地址 https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

配置gitlab访问域名

  • 修改配置文件 /etc/gitlab/gitlab.rb    (external_url 'http://192.168.1.106',如果是域名请写域名)

邮箱配置

1.Email Settings

  • gitlab_rails['gitlab_email_enabled'] = true
  • gitlab_rails['gitlab_email_from'] = "@qq.com" # 发件邮箱
  • gitlab_rails['gitlab_email_display_name'] = 'Joker-GitLab' # 发件人显示名称

2.配置邮箱的用户名和密码

  • gitlab_rails['smtp_enable'] = true
  • gitlab_rails['smtp_address'] = "smtp.qq.com"
  • gitlab_rails['smtp_port'] = 465     # 126 是25
  • gitlab_rails['smtp_user_name'] = "@qq.com" #发件人邮箱账户
  • gitlab_rails['smtp_password'] = "" #发件人邮箱客户端授权码
  • gitlab_rails['smtp_domain'] = "qq.com"
  • gitlab_rails['smtp_authentication'] = "login"
  • gitlab_rails['smtp_enable_starttls_auto'] = true
  • gitlab_rails['smtp_tls'] = true

关闭可关闭组件

  • grafana['enable'] = false
  • prometheus['enable'] = false
  • node_exporter['enable'] = false
  • redis_exporter['enable'] = false
  • postgres_exporter['enable'] = false
  • gitlab_monitor['enable'] = false
  • gitlab_monitor['probe_sidekiq'] = false
  • prometheus_monitoring['enable'] = false

常用命令

  • 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/:备份文件生成的目录,只有代码,没有库关系

变更主配置文件(/etc/gitlab/gitlab.rb)

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

汉化处理

  • https://gitlab.com/xhang/gitlab/  汉化地址选择gitlab对应的版本下载
  • tar xf gitlab-12-0-stable-zh.tar.gz
  • gitlab-ctl stop
  • \cp -r gitlab-12-0-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/
  • gitlab-ctl reconfigure
  • gitlab-ctl restart
  • 管理中心,设置(通用设置),本地化

关闭注册

  • 管理中心,设置(通用),注册限制

创建对象

先创建组,在创建用户,最后创建项目。千万不要把仓库给个人,要把仓库给组,用户加入组。

  • 创建gourps
  • 创建用户
  • 创建项目给组

SSH KEY管理

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

备份管理(修改/etc/gitlab/gitlab.rb)

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

恢复管理

  • 停止数据写入服务
  • gitlab-ctl stop unicorn
  • gitlab-ctl stop sidekiq
  • gitlab-rake gitlab:backup:restore BACKUP=1576491309_2019_12_16_12.0.3 # 后面名字就是在备份目录中文件名
  • gitlab-ctl start

gitlab迁移

一定的一定要保证前后版本相同的时候,手动备份一份,然后在恢复在另一台上。还有就是/etc/gitlab/gitlab.rb和/var/opt/gitlab/nginx/conf一并要迁移走,或者保证内容一样。

gitlab升级

不能跨版本升级,要10-11,不能10-12

gitlab忘记管理密码

1. 在root用户下,执行
[root@gitlab-ce ~]# gitlab-rails console -e production
2.获得用户数据,修改用户密
irb(main):001:0> user = User.where(id: 1).firs
#更改密码并确认密码
irb(main):002:0> user.password="123456"
irb(main):003:0> user.password_confirmation="123456"
#保存退出
irb(main):004:0> user.save!
irb(main):005:0> quit

优化内存

  • /etc/gitlab/gitlab.rb
  • unicorn['worker_processes'] = 4 一般是核心数就行了。官网建议+1  
posted @ 2019-01-15 19:18  liqianlong  阅读(290)  评论(0编辑  收藏  举报