Centos8 部署GitLab13

介绍

  • GitLab: 是一个机遇 Git 实现的在线代码仓库托管软件.
  • 基于 Ruby on rails 开发.
  • 集成了很多组件.
  • 社区版本为开源免费版.
  • 有完善的问题和追踪系统.
  • 8.0版开始,GitLab持续集成(CI)完全集成到GitLab本身,它还具有持续部署和持续交付功能,可用于构建、测试和部署你的应用程序。
  • CD/CI

GitLab 组件

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

目录介绍

/var/opt/gitlab/git-data/repositories/   # 默认存储目录.
/opt/gitlab/                             # 应用代码和相应的依赖程序.
/var/opt/gitlab/                         # gitlab-ctl reconfigure 命令编译后的应用数据和配置文件,不需要人为修改.
/etc/gitlab/                             # 配置文件目录.
/var/log/gitlab/                         # 此目录下存放了 gitlab 各个组件生产的日志.
/var/opt/gitlab/backups/                 # 备份文件生成的目录.

安装gitlab

    官网安装介绍: https://about.gitlab.com/install/#centos-8

     清华大学镜站: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/

    官网源站: https://packages.gitlab.com/gitlab/gitlab-ce

安装

dnf install policycoreutils-python-utils
[root@node1 ~]# rpm -ivh gitlab-ce-13.2.1-ce.0.el8.x86_64.rpm  

配置

配置访问的URl
[root@node1 ~]# vim /etc/gitlab/gitlab.rb 
external_url 'http://172.16.0.61'
配置 gitlab
sudo gitlab-ctl reconfigure

查看各组件状态

[root@node1 ~]# gitlab-ctl status
run: alertmanager: (pid 34082) 93s; run: log: (pid 33702) 290s
run: gitaly: (pid 34052) 98s; run: log: (pid 33179) 491s
run: gitlab-exporter: (pid 34040) 99s; run: log: (pid 33625) 326s
run: gitlab-workhorse: (pid 34027) 99s; run: log: (pid 33518) 370s
run: grafana: (pid 34097) 92s; run: log: (pid 33954) 132s
run: logrotate: (pid 33557) 354s; run: log: (pid 33567) 350s
run: nginx: (pid 33539) 365s; run: log: (pid 33547) 362s
run: node-exporter: (pid 34036) 99s; run: log: (pid 33606) 337s
run: postgres-exporter: (pid 34089) 92s; run: log: (pid 33731) 276s
run: postgresql: (pid 33315) 476s; run: log: (pid 33330) 472s
run: prometheus: (pid 34061) 98s; run: log: (pid 33672) 301s
run: puma: (pid 33461) 389s; run: log: (pid 33468) 388s
run: redis: (pid 33141) 498s; run: log: (pid 33152) 495s
run: redis-exporter: (pid 34045) 98s; run: log: (pid 33650) 312s
run: sidekiq: (pid 33479) 383s; run: log: (pid 33489) 382s

初始化密码

   访问:http:gitlab_ip

登录

汉化

旧版本汉化

1、下载汉化补丁 
git clone https://gitlab.com/xhang/gitlab.git 
2、查看全部分支版本 
git branch ‐a 
3、对比版本、生成补丁包 
git diff remotes/origin/10‐2‐stable remotes/origin/10‐2‐stable‐zh > ../10.2.2‐zh.diff 
4、停止服务器 
gitlab‐ctl stop 
5、打补丁
 patch ‐d /opt/gitlab/embedded/service/gitlab‐rails ‐p1 < /tmp/10.2.2‐zh.diff 
6、启动和重新配置 gitlab‐ctl start gitlab‐ctl reconfigure

新版本汉化

gitlab-13.2.1 已经支持中文版了

修改路径: 用户 - 配置 - 偏好配置 - 语言

gitlab常用命令

gitlab-ctl start      # 启动全部服务
gitlab-ctl restart    # 重启全部服务
gitlab-ctl stop       # 停止全部服务

gitlab-ctl reconfigure   # 重置配置文件(一般修改完主配置文件/etc/gitlab/gitlab.rb,需要执行此命令)
gitlab-ctl show-config   # 验证配置文件
gitlab-ctl uninstall     #删除gitlab(保留数据)
gitlab-ctl cleanse       # 删除所有数据,从新开始

gitlab-ctl tail <service name> #查看服务的日志

gitlab管理

  组,用户.项目的关系:

    组中创建项目,项目中添加用户.

    如果组中添加用户用户就会有这个组中所有项目的权限.

组管理

    创建-创建组

 

 

用户管理

    创建: 创建 - 创建用户 - edit设置密码 

    用户加组:  组 - 向组添加用户 - 设置用户级别 - 添加用户

    用户加项目: 项目 - 角色 - 设置用户权限 - 访问到期时间 - 添加用户

 

 

 设置密码

    edit - 设置密码

    用户登录需要再次修改密码

 

用户添加到组

 

项目管理

创建项目

添加用户

分支保护

   默认 master 只有 master权限才可以合并和push

 没有权限推送:

[root@node3 openstack]# git push origin master 
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 427 bytes | 427.00 KiB/s, done.
Total 5 (delta 1), reused 0 (delta 0)
remote: GitLab: You are not allowed to push code to protected branches on this project.
To 172.16.0.61:wbecloud/openstack.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@172.16.0.61:wbecloud/openstack.git'

 merge操作

    开发人员推送代码到指定的分支,发起merge操作, master 进行merge.

[root@node3 openstack]# git checkout -b dev
Switched to a new branch 'dev'
[root@node3 openstack]# git branch 
* dev
  master
[root@node3 openstack]# git push -u origin dev
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 427 bytes | 427.00 KiB/s, done.
Total 5 (delta 1), reused 0 (delta 0)
remote: 
remote: To create a merge request for dev, visit:
remote:   http://172.16.0.61/wbecloud/openstack/-/merge_requests/new?merge_request%5Bsource_branch%5D=dev
remote: 
To 172.16.0.61:wbecloud/openstack.git
 * [new branch]      dev -> dev
Branch 'dev' set up to track remote branch 'dev' from 'origin'.

发起合并操作

 

 管理员处理合并请求

原文地址:https://www.cnblogs.com/yanshicheng/p/13378833.html