本文共 5432 字,大约阅读时间需要 18 分钟。
Gitlab操作手册
1概述
1.1编写目的 本文档主要介绍基于Red Hat Enterprise Linux Server release 6.4 gitlab企业版&社区版服务通用部署规范1.2软件简介 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。1.3Gitlab服务构成1.4Gitlab架构图
1.5Gitlab工作流程通过ssh访问gitlab执行预定义好Git命令→ 调用GitLab Rails API 检查权限→ 执行pre-receive钩子→ 执行请求动作,处理GitLab的post-receive动作通过http/https 访问gitlab
执行pullgit仓库拉取代码(pull)→GitLab Rails负责处理用户鉴权和执行Git命令的工作执行push
Git仓库推送(push)代码→GitLab Rails不执行任何动作,交予GitLab Shell处理↓→调用GitLab Rails API 检查权限→调用GitLab Rails API 检查权限→执行pre-receive钩子→执行请求的动作,处理GitLab的post-receive动作1.6工作流程图
1.7Gitlab工作用户
Gitlab安装后,默认创建5个用户,分别管理不同的模块2基础环境配置准备2.1硬件要求2.2环境依赖包 2.3安装包下载3部署3.1 使用yum安装依赖包[root@sz1cbranwebt01l ~]# yum install curl git postfix policycoreutils-python -y3.2 安装rpm包[root@sz1cbranwebt01l]#rpm -ivh gitlab-ee11.4.5ee.0.el6.x86_64.rpmgitlab默认安装路径/opt/gitlab 默认配置文件路径/var/opt/gitlab需要安装其他路径则以下命令
[root@sz1cbranwebt01l]#rpm -ivh --prefix=/${安装路径}rpm包安装自带所有相关组件,不需要单独安装数据库和缓存数据库等
3.3 装载配置[root@sz1cbranwebt01l ~]# gitlab-ctl reconfigure以上配置命令执行后,如没有报错,就说明gitlab配置成功。3.4 启动服务rpm 安装默认以root用户启动,亦可授权给普通用户启动启停命令: gitlab-ctl start # 启动所有 gitlab 组件; gitlab-ctl stop # 停止所有 gitlab 组件; gitlab-ctl restart # 重启所有 gitlab 组件; gitlab-ctl status # 查看服务状态;
3.4.1 使用域名访问
访问http://gitlab.example.com8.8版本之前默认账号 root 密码 5iveL!fe8.9之后登录web界面会要求更改密码,密码最少为8位!!!5.4.2 使用IP访问
将以下文件/文件中的gitlab.example.com全部替换为本机IP[root@sz1cbranwebt01l]#vim /etc/gitlab/gitlab.rb[root@sz1cbranwebt01l]#vim /var/opt/gitlab/gitlab-shell/config.yml[root@sz1cbranwebt01l]#vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml[root@sz1cbranwebt01l]#vim /var/opt/gitlab/nginx/conf/gitlab-http.conf最后执行命令使之配置生效
[root@sz1cbranwebt01l]#gitlab-ctl reconfigure重启服务
[root@sz1cbranwebt01l]#gitlab-ctl restart3.5 Web界面登陆设置
8.8版本之前默认账号 root 密码 5iveL!fe8.9之后登录web界面会要求更改密码,注意密码最少8位!!3.6 汉化(目前汉化在进行中……仅部分页面汉化)3.6.1获取gitlab汉化包[root@sz1cbranwebt01l]#git clone3.6.2 查看gitlab版本 diff 获取对应版本的中文补丁
[root@sz1cbranwebt01l]#head -1 /opt/gitlab/version-manifest.txt5.6.3 进入 clone下来的gitlab目录[root@sz1cbranwebt01l]#cd /root/gitlab/5.6.4 将中文补丁导入gitlab用diff将英文原版与中文版的对比生成.diff文件[root@sz1cbranwebt01l]#git diff v11.4.5 v11.4.5-zh > /root/v11.4.5-zh.diff5.6.5 停止服务, 将刚才的diff文件做为补丁导入到gitlab中[root@sz1cbranwebt01l]#gitlab-ctl stop [root@sz1cbranwebt01l]#patch -d/opt/gitlab/embedded/service/gitlab-rails -p1 < /root/v11.4.5-zh.diff一路回车跳过即可!5.6.6 重新加载配置文件
若访问web出现502 可重新配置 在访问[root@sz1cbranwebt01l]#gitlab-ctl reconfigure5.6.7 启动服务[root@sz1cbranwebt01l]#gitlab-ctl start5.6.8 测试web页面
出现中文登陆页面表示汉化成功4Gitlab 日志文件日志路径/var/log/gitlab # 系统Log文件位置/var/log/gitlab/gitlab-rails/production.log # 页面操作Log/var/log/gitlab/gitlab-rails/production.log # push代码Log/var/log/gitlab/application.log # user project 创建删除/var/log/gitlab/gitlab-shell/gitlab-shell.log#分支TAG Commit更新记录/var/log/gitlab/nginx/gitlab_access.log #nginx 交互Log查看日志
gitlab-ctl tail # 查看控制台实时的logs; gitlab-ctl tail gitlab-rails # 读取/var/log/gitlab下子目录的日志 gitlab-ctl tail nginx/gitlab_error.log # 读取某个指定的日志文件5Gitlab相关配置
5.1主要配置文件/var/opt/gitlab/git-data/repositories # 默认文件存储路径/etc/gitlab/gitlab.rb # gitlab主配置文件/var/opt/gitlab/nginx/conf/gitlab-http.conf # nginx组件配置文件5.2其他配置文件
gitlab.rb为集成配置,在主配置文件内修改即可,其对应的其它模块里的配置不需要单独修改。执行gitlab-ctl reconfigure重新配置文件,会修改对应相关模块的配置文件使之生效。Gitlab其他模块配置文件,一般情况不需要修改,主要作用在做模块迁移时,进行独立配置,首先禁用主配置文件gitlab.rb中某个模块,然后针对迁移环境的相关信息,对模块配置文件进行配置。
eg:
更换gitlab自带Nginx服务,使用自行编译Nginx来管理gitlab服务。vim /etc/gitlab/gitlab.rb...#设置nginx为false,关闭自带Nginxnginx[‘enable‘] = false...检查默认nginx配置文件,并迁移至新Nginx服务/var/opt/gitlab/nginx/conf/nginx.conf
#nginx配置文件,包含gitlab-http.conf文件/var/opt/gitlab/nginx/conf/gitlab-http.conf
#gitlab核心nginx配置文件chmod -R o+x /var/opt/gitlab/gitlab-rails
重启 nginx、gitlab服务
gitlab-ctl reconfigure
service nginx restart查看数据库
查看表(共计196张表)5.4Gitlab 默认仓库路径修改[root@sz1cbranwebt]#vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml 6Gitlab重置root密码进入gitlab命令目录
[root@sz1cbranwebt01l]#cd /opt/gitlab/embedded/bin && su git命令行进入控制台[root@sz1cbranwebt01l]#gitlab-rails console production查询id为1的用户对象(即超级管理员)irb(main):001:0> user = User.where(id:1).first确认信息: 信息中看到admin为true,username为root重置密码irb(main):002:0>user.password='passwd'保存密码
irb(main):003:0>user.save!7数据备份、恢复、迁移
7.1Gitlab数据备份 [root@sz1cbranwebt01l ~]#gitlab-rake gitlab:backup:create该命令会备份gitlab仓库、数据库、用户、用户组、用户密钥、权限等信息在/var/opt/gitlab/backups目录下创建一个名称类似为1481598919_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分。7.2Gitlab数据恢复
[root@sz1cbranwebt01l]#gitlab-ctl stop unicorn
[root@sz1cbranwebt01l]#gitlab-ctl stop sidekiq[root@sz1cbranwebt01]#gitlab-rake gitlab:backup:restore BACKUP=1481598919
[root@sz1cbranwebt01]#gitlab-ctl start
7.3Gitlab数据迁移
迁移要求:gitlab新旧版本号必须保证一致性,精确至小版本号[root@sz1cbranwebt01]#gitlab-ctl stop unicorn
[root@sz1cbranwebt01]#gitlab-ctl stop sidekiq然后将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可。
/var/opt/gitlab/nginx/conf
/etc/gitlab/gitlab.rb
转载于:https://blog.51cto.com/14241151/2366621