简介
- 基于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