简介

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的 web服务。
Gitlab开放式一体化安全DevOps平台,集成了源代码管理,CI/CD,研发效能管理等,软件研发全生命周期的 DevOps能力.GitLab中国发行版,提供本土化技术支持服务。
安装
请使用root用户操作
sh
sudo apt-get install curl openssh-server ca-certificates postfix
Tab切换到"确定"按钮,然后回车

Tab切换到"确定"按钮,然后回车


sh
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash



下载
sh
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/focal/gitlab-ce_17.1.6-ce.0_amd64.deb/download.deb
安装
sh
sudo dpkg -i gitlab-ce_17.1.6-ce.0_amd64.deb
运行完sudo dpkg后如果出现下面的界面就表示gitlab安装成功。

如果运行dpkg报openssh-server相关的错误,请先执行下面三个命令
sh
sudo apt --fix-broken install
sudo apt-get update
sudo apt-get upgrade
卸载
sh
# 停止 GitLab 服务
sudo gitlab-ctl stop
# 卸载 GitLab CE
sudo dpkg -r gitlab-ce
#删除 GitLab 的配置和数据
sudo rm -rf /etc/gitlab
sudo rm -rf /var/opt/gitlab
sudo rm -rf /var/log/gitlab
配置Gitlab
sh
sudo vim /etc/gitlab/gitlab.rb
如果运行上述命令出现权限问题,运行下列命令即可:chmod -R 755 /var/log/gitlab
指定ip和端口号

修改完毕保存退出
停止gitlab服务
sh
sudo gitlab-ctl stop
启动gitlab服务 产生的日志比较多、启动时间比较长
sh
sudo gitlab-ctl reconfigure
见到如下信息表明启动成功

重启所有gitlab组件
sh
sudo gitlab-ctl restart

启动所有gitlab组件
sh
sudo gitlab-ctl start

启用开机自启动
sh
sudo systemctl enable gitlab-runsvdir.service
初始化root的密码
按照如下命令初始化管理员账户的密码
sh
#切换路径
cd /opt/gitlab/bin/
#打开控制台
sudo gitlab-rails console -e production
#查询用户账号信息并赋值给u
u=User.where(id:1).first
#设置root的密码 密码中不能包含常用字符
u.password='elvis1234'
#确认密码
u.password_confirmation='elvis1234'
#保存信息(注意有个感叹号)
u.save!
#退出
exit

登录gitlab
接下来就可以通过http://192.168.150.139:8090来登录gitlab了。登录的地址是你之前设置external_url字段的值

允许注册

设置中文
点击侧边栏 → 头像 → 个性化设置

选择语言、每周的第一天,然后保存

刷新页面即可

Gitlab注册新用户
通过以下步骤来注册新用户:
退出当前用户

登录页面点击立即注册

填写基本信息,填完之后点击注册即可

注册之后会显示需要管理员批准,这样才算真正注册成功。

再次登录root账户,点击配置Gitlab:

查看最新的用户:

点击等待批准,然后批准该用户进入群组。



退出root,新用户登录


基本使用
创建群组


指定群组名字

注意可见等级的配置
- private 【 B组看不到A组的项目】
- internal
- public 【所有人都能看到你的项目并拉去代码】
通常情况都是private,将所有需要协同开发的人员拉入群组即可

点击创建群组即可
邀请团队成员

选择需要邀请的团队成功,然后点击邀请即可

可以在群组的设置中查看团队成员

团队成员列表如下

创建团队项目
在群组主页面点击新建项目

选择 创建空白项目

指定项目名、取消勾选使用自述文件初始化仓库,然后点击新建项目

创建成功如下

sshkey
搭建了一个自己的gitlab仓库,创建了一个私有仓库,拉取或上传代码到gitlab 私有仓库有两种方式,如git@192.168.xx.xx:root/xx.git和http://192.168.xx.xx/root/xx.git,即一种是通过https或http,一种是git的形式这种git形式其实就是使用了ssh协议,使用https或http上传代码是需要输入用户账号密码的,为了方便我们可以使用ssh协议做ssh免密上传,如下配置:
开发者电脑生成秘钥
sh
ssh-keygen -t rsa -b 4096 -C 你的邮箱
执行指令时会让用户输入保存密钥的文件、密码、重复密码,直接回车就行

在执行
ssh-keygen命令时,密码是指用于保护您的私钥的密码。当您生成 SSH 密钥时,可以选择为私钥设置密码,也可以选择不设置密码。如果您选择设置密码,那么每次使用私钥进行身份验证时,都需要输入该密码。这样可以提供额外的安全性,因为即使他人获得了您的私钥,但仍需要知道密码才能使用它。
如果您选择不设置密码,私钥将不受密码保护,这意味着任何人可以在获得私钥后使用它进行身份验证。因此,为了安全起见,强烈建议为私钥设置密码。
设置密码或不设置密码主要取决于您对安全性和方便性的权衡。如果您非常关注安全性,建议设置密码。如果您在个人计算机上或安全环境中工作,并且不想每次都输入密码,可以选择不设置密码。
执行完成之后会在当前用户主文件中生成一个.ssh的文件,里面存放的就是刚才生成的密钥 注意:这两个文件别删

打开id_rsa.pub文件,复制里面的公钥

登录到gitlab,点击logo、头像、偏好设置

打开侧边栏,找到SSH密钥

点击添加新密钥

把密钥粘贴到密钥输入框中,点击添加密钥保存即可

添加成功如下所示

测试
克隆项目
进入项目主页,找到代码按钮,点击复制SSH克隆地址

cmd打开终端,进行克隆


错误处理
报错:E: The package gitlab-ce needs to be reinstalled, but I can't find an archive for it
解决方案:
sh
vi /var/lib/dpkg/status
查找安装未成功的安装包,搜索关键字 "half" , 输入/half,回车,按n可查看下一个搜索到的关键字;
将安装包相关信息行删除,然后重新安装即可。