私有软件仓库 GitLab

3 私有软件仓库 GitLab

  • 安装、创建用户组和项目、设置用户分组和权限、客户端能拉取和提交代码
  • windows要做host解析(可以下载SwitchHosts)

在这里插入图片描述
在这里插入图片描述

3.2.1 GitLab 架构

Gitlab的服务构成

  • Nginx:静态web服务器
  • gitlab-shell:用于处理Git命令和修改authorized keys列表
  • gitlab-workhorse:轻量级的反向代理服务器 它旨在充当智能反向代理,以帮助整个 GitLab 加速
  • postgresql:数据库
  • redis:缓存数据库
  • sidekiq:用于在后台执行队列任务(异步执行)
  • unicorn: An HTTP server for Rack applications, GitLab Rails应用是托管在这个服务器上面的

3.2.2 安装 GitLab 要求

1.硬件配置要求较高:

  • 测试环境:内存4G以上
  • 生产环境:建议CPU2C以上,内存8G以上,磁盘10G以上配置,和用户数有关

2.数据库要求:

  • 从GitLab 12.1 开始不再支持MySQL,只支持PostgreSQL

3.2.3 安装前准备

3.2.3.1 Ubuntu 系统环境安装前准备

3.2.3.1.1 配置 ubuntu 远程连接
[root@ubuntu1804 ~]# vim /etc/ssh/sshd_config
PermitRootLogin yes
[root@ubuntu1804 ~]#systemctl restart sshd
3.2.3.1.2 配置ubuntu 主机名
hostnamectl set-hostname gitlab
[root@gitlab ~]# vi /etc/hosts
10.0.0.30  gitlab.lec.org  # 本机ip 10.0.0.30
3.2.3.1.3 配置ubuntu 仓库
[root@gitlab ~]# vim /etc/apt/sources.list
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse

3.2.4 GitLab 安装

3.2.4.1 下载安装
下载
wget https://mirrors.tuna.tsinghua.edu.cn/gitlabce/ubuntu/pool/bionic/main/g/gitlab-ce/gitlab-ce_15.1.0-ce.0_amd64.deb
安装
dpkg -i gitlab-ce_15.1.0-ce.0_amd64.deb

在这里插入图片描述

3.2.4.2 修改 GitLab 配置

qq邮箱开启授权码 https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256

root@gitlab:~# vim /etc/gitlab/gitlab.rb

external_url 'http://gitlab.lec.org'  #修改此行,改为你的名称
#########################增加邮件配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "1xxxxxxx@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
gitlab_rails['gitlab_email_from'] = "1xxxxxxx@qq.com"
3.2.4.3 初始化和启动服务
#每次修改完配置文件都需要执行此操作
root@gitlab:~# gitlab-ctl reconfigure
2.2.4.4 验证 GitLab 启动完成
#新版服务
root@gitlab:~# gitlab-ctl status

在这里插入图片描述

2.2.4.5 验证端口及状态
root@gitlab:~# lsof -i :80
COMMAND   PID       USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   19051       root    7u  IPv4  53309      0t0  TCP *:http (LISTEN)
nginx   19052 gitlab-www    7u  IPv4  53309      0t0  TCP *:http (LISTEN)
nginx   19053 gitlab-www    7u  IPv4  53309      0t0  TCP *:http (LISTEN)

3.3 GitLab 基本配置

3.3.1 首次登录 GitLab Web 界面修改密码

  • 上面设置过密码(注意:密码至少8位),浏览器访问 http://gitlab服务器IP/,我的ip是10.0.0.30

浏览器访问 http://10.0.0.30/
账号root 密码12345678

在这里插入图片描述

3.4 GitLab 用户和组管理

3.4.1 用户管理

创建gitlab用户账户并登录
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
填入信息后,点击下面的创建用户
在这里插入图片描述
注册成功,会显示用户个人信息
在这里插入图片描述
然后会在设置的用户邮箱收到邮件,并修改登录密码
在这里插入图片描述

3.4.2 创建组

在这里插入图片描述
填写群组资料
在这里插入图片描述
填完最下面点创建组

创建完组后,将用户加入组并分配权限
在这里插入图片描述
在这里插入图片描述

3.5 GitLab 项目管理

3.5.1 创建项目

在这里插入图片描述
点击新项目
在这里插入图片描述
点击创建空白项目,填入项目信息,点创建项目(项目网址选择用户组)
在这里插入图片描述
创建完成后显示项目信息
在这里插入图片描述

3.5.2 客户端拉取和提交代码

  • 客户端ip 10.0.0.8
  • URL git@gitlab.lec.org:python/meta2s.git
    在这里插入图片描述
# 新建文件夹,用来存放拉取仓库的项目
mkdir /data
cd /data
# 克隆仓库,拉取项目
[root@gc data]# git clone git@gitlab.lec.org:python/meta2s.git
Cloning into 'meta2s'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.

# 查看项目 
[root@gc data]# ls 
meta2s
[root@gc data]# cd meta2s/
[root@gc meta2s]# ls 
README.md

# 新建分支main2
[root@gc meta2s]# git switch -c main2
Switched to a new branch 'main2'

#修改或者新增文件
[root@gc meta2s]# echo "login test html " > login.html
#拉取最新的代码文件
[root@gc meta2s]# git pull
#添加当前目录下所有数据到暂存区
[root@gc meta2s]# git add .
##提交文件到工作区
[root@gc meta2s]# git commit -m "add login"
[main2 eab4ece] add login
 1 file changed, 1 insertion(+)
 create mode 100644 login.html

# 推送到分支main2
[root@gc meta2s]#  git push -u origin main2
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 2 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 284 bytes | 284.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: 
remote: To create a merge request for main2, visit:
remote:   http://gitlab.lec.org/python/meta2s/-/merge_requests/new?merge_request%5Bsource_branch%5D=main2
remote: 
To gitlab.lec.org:python/meta2s.git
 * [new branch]      main2 -> main2
Branch 'main2' set up to track remote branch 'main2' from 'origin'.

仓库web端选择分支main2,查看是否推送成功(成功:则新增login.html)
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值