GitLab

Posted 小yi不闹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GitLab相关的知识,希望对你有一定的参考价值。



一 搭建

yum install -y git           //安装git      

(1)配置基本信息

       git config --global user.name "wsw"             //创建用户,用户名为"wsw"

       git config --global user.email "example@qq.com"          //配置邮箱,以"@qq.com结尾"

       useradd -s /usr/bin/git-shell git                   ///添加git用户,设置shell为/usr/bin/git-shell

(2)创建文件,更改所属组和权限,存放客户端机器上的公钥

      cd /home/git

      mkdir .ssh                  //创建密钥目录(.ss隐藏文件)

      touch .ssh/authorized_keys                   //添加密钥

      chown -R git.git .ssh                              //修改所属组和所属用户

      chmod 600 .ssh/authorized_keys           //设置只有所属用户才可以查看这个文件

      ll /home/git/.ssh/authorized_keys

 

 

 

 

(3)创建Git仓库目录

      mkdir -p /data/gitpub(xx+目录+文件名)      //创建文件

      cd /data/gitpub

(4)会创建一个裸仓库(以.git结尾)

      git init --bare sample.git

      chown -R git.git sample.git

      ll

登录客户端,把客户端公钥放在git服务器/home/git/.ssh/authorized_keys 文件里

cat .ssh/id_rsa.pub

vi /home/git/.ssh/authorized_keys

关掉两个服务器的防火墙

systemctl stop firewalld

 systemctl stop firewalld

 mkdir /new

cd /new

git clone git@192.168.111.32:/data/gitpub/sample.git

ls

cd sample/

 ll -a

二 Gitlab的使用

 vim /etc/yum.repos.d/gitlab.repo              //进入文件

 yum clean all

 yum repolist

 yum install -y gitlab-ce                       //下载 gitlab-ce

重新加载yum install -y net-tools

gitlab-ctl reconfigure/      //下载一个 net-tools 命令(查看端口命令)

netstat -ntlp                //查看端口

 

gitlab-ctl start            //启动gitlab

查看浏览器默认密码:

cat /etc/gitlab/initial_root_password

在浏览器输入IP进行访问。 用户名 root 密码在/etc/gitlab/initial_root_password

三 备份

gitlab-rake gitlab:backup:create            //创建备份

ls /var/opt/gitlab/backups/                     //查看备份目录

gitlab-ctl stop unicorn ; gitlab-ctl stop sidekiq         //GitLab恢复,需要先停服务

gitlab-rake gitlab:backup:restore BACKUP=1628370252_2021_08_08_14.1.2   //(1628370252_2021_08_08_14.1.2 (这里是一个编号,即备份文件的前缀) //恢复备份

 gitlab-ctl start                 //再启动服务就可以了

 

 


 

gitlab仓库

1.本章课程内容大纲

1.Gitlab版本库基本概述
??1.什么是gitlab?

??2.gitlab与github的不同?
??3.为什么使用gitlab优势和使用场景?
2.Gitlab服务组成?
3.gitlab安装配置?
??1.安装gitlab
??2.配置gitlab访问域名
??3.配置gitlab邮箱信息
4.gitlab中文汉化?
5.gitlab日常使用?
??1.Gitlab中的用户、用户组、项目仓库之间的关系?
??2.创建组、创建用户、创建项目?
??3.验证用户、组、项目的相关权限?
??3.如何将本地的本数据推送至gitlab的仓库? http方式、ssh方式?
??4.如果有新成员需要加入该项目该怎么办?
6.gitlab运维,如何备份、恢复、升级?

  1. gitlab介绍: 代码托管仓库,和gitee github 等等

2.gitlab与github区别

github针对私有仓库收费,国外 卡 ( 开源项目 )

gitlab自建自行维护, 创建公开仓库和私有仓库 (公司使用)

小型团队: 国内 码云 创建私有仓库

离线同步 分支管理 权限管理

2.gitlab安装

1.依赖环境

yum install -y curl openssh-server postfix wget

2.gitlab安装

yum localinstall gitlab-ce-12.0.3-ce.0.el7.x86_64.rpm 

2.1 配置gitlab的url

vim /etc/gitlab/gitlab.rb

external_url 'http://gitlab.oldxu.com'

2.2 配置gitlab的邮箱

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

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "123@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

2.3关闭不用的程序

#关闭或不关闭不重要,取决于你的内存

1385 prometheus['enable'] = false
1474 node_exporter['enable'] = fals
1493 redis_exporter['enable'] = false
1511 postgres_exporter['enable'] = false
1560 grafana['enable'] = false

2.4 gitlab初始化

#第一次初始化时间较长,后期修改配置文件也需要初始化

[root@git ~]# gitlab-ctl reconfigure
[root@git ~]# gitlab-ctl status
[root@git ~]# gitlab-ctl start
[root@git ~]# gitlab-ctl stop
[root@git ~]# gitlab-ctl restart
[root@git ~]# gitlab-ctl stop nginx

2.5 访问gitlab服务

技术图片

技术图片

2.6 验证邮箱功能是否可用

5.重新初始化后检查gitlab邮箱是否可正常使用

[root@gitlab ~]# gitlab-rails console
Notify.test_email('接收方邮件地址','邮件标题','邮件内容').deliver_now

Notify.test_email('552408925@qq.com','gitlab-test','测试').deliver_now

技术图片

3.gitlab汉化

1.原生汉化,但不全

技术图片

2.第三方的汉化补丁包 https://gitlab.com/xhang/gitlab

gitlab-ctl stop
cp -r gitlab-12-0-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/

gitlab-ctl reconfigure
gitlab-ctl start

4.gitlab日常使用

??1.Gitlab中的用户、用户组、项目仓库之间的关系?
??2.创建组、创建用户、创建项目?
??3.验证用户、组、项目的相关权限?
??3.如何将本地的本数据推送至gitlab的仓库? http方式、ssh方式?
??4.如果有新成员需要加入该项目该怎么办?

1.如何导入已有项目

技术图片

技术图片

2.项目 用户 用户组 关系?

技术图片

技术图片

1.基于组创建项目
2.创建两个用户 linux windows 加入dev组 , 分配权限 linux是所有者 windows是开发
3.使用linux系统关联linux用户,克隆项目,然后分别往master或dev分支提交代码测试
4.使用windows系统关联windows用户,克隆项目
尝试修改dev分支内容,测试提交。
尝试修改master分支内容。,尝试提交,如果不行
1.尝试发起合并请求由linux用户审批,检查合并后的效果
2.直接关闭该项目的分支保护,然后再次测试。

A B用户

用户权限

1.git修改为ssh连接方式

[root@git gdx]# git remote -v
origin  http://gitlab.oldxu.com/dev/gdx.git (fetch)
origin  http://gitlab.oldxu.com/dev/gdx.git (push)

[root@git gdx]# git remote remove origin 
[root@git gdx]# git remote add origin git@gitlab.oldxu.com:dev/gdx.git

[root@git gdx]# git remote -v
origin  git@gitlab.oldxu.com:dev/gdx.git (fetch)
origin  git@gitlab.oldxu.com:dev/gdx.git (push)

2.gitlab备份

gitlab备份非常简单,就一条命令

gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800



gitlab-ctl reconfigure

执行备份命令,( 如果希望每天执行,使用shell脚本或定时任务都ok )

gitlab-rake gitlab:backup:create


默认路径
[root@git ~]# ls /var/opt/gitlab/backups/
1573549930_2019_11_12_12.0.3_gitlab_backup.tar

3.gitlab恢复

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

通过gitlab-rake命令进行恢复,恢复时需要指定此前备份的名称 (但不需要写git_lab_backup.tar后缀)

gitlab-rake gitlab:backup:restore BACKUP=1573549930_2019_11_12_12.0.3

最后启动所有gitlab的组件

gitlab-ctl start

4.gitlab升级

不要跨越大版本

12.0.3 --> 12.1.xx

12.1汉化包

5.gitlab迁移

https://www.xuliangwei.com/bgx/803.html#toc_4

5.gitlab总结

  • 1.gitlab介绍
  • 2.gitlab安装
  • 3.gitlab配置
    • 1.邮箱
    • 2.域名
    • 3.关闭没用服务(不需要)
  • 4.gitlab汉化
  • 5.gitlagb基本使用
    • 1.用户和用户组以及权限的关系?
    • 2.演示用户和用户组权限配置 ?
  • 6.gitlab备份
  • 7.gitlab恢复
  • 8.作业: gitlab升级 迁移
  • 9.扩展:
    • 1.gitlab中请求合并 (合并实现的几种方式)
    • 2.gitlab分支保护机制(调整分支保护机制)
    • 3.gitlab关闭主页面的注册功能 (因为默认注册即可登录)
    • 4.gitlab免密方式
      • http方式: 需要频繁输入密码 不是太方便
      • ssh方式: 将系统的公钥放置对应用户ssh下,即可实现免密登录。
    • 5.gitlab修改备份路径 (自行完成) /data/gitlab/backups

技术图片

以上是关于GitLab的主要内容,如果未能解决你的问题,请参考以下文章

GitLab

Gitlab代码管理仓库安装部署

GitLab Guide

Gitlab部署及汉化操作

安装gitlab并汉化

GitLab安装与汉化-实战