登录 |  注册
首页 >  编程测试工具 >  Git 专题学习教程笔记 >  gitlab安装及使用教程-完整篇

gitlab安装及使用教程-完整篇

GitLab是项目管理和代码托管平台,可通过Web界面进行访问公开的或者私人项目,常用于源代码版本控制,但是也可以用于保存各类文件。GitLab能够浏览源代码,管理缺陷和注释。GitLab可以管理团队对仓库的访问,非常易于浏览提交过的版本并提供一个文件历史库。GitLab提供一个代码片段收集功能,可以轻松实现代码复用,便于日后有需要的时候进行查找。

当前使用的是私服GitLab,搭建在内部服务器上,只有管理员授予账号才可以访问。

1.Gitlab环境部署

环境要求:内存不低于2G

第一步,查看Linux版本信息。

# 查看Linux系统的版本信息

命令:cat /proc/version

# 查看Linux系统发行版信息

命令:cat /etc/redhat-release

第二步,安装依赖包。

命令:

yum install policycoreutils openssh-server openssh-clients postfix
systemctl enable sshd
systemctl start sshd
systemctl enable postfix
systemctl start postfix

第三步,下载并安装rpm包。

方法一:通过rpm包进行安装。(一般选择这种方法)

不同版本的Linux对应不同的rpm包。

若Linux版本为Centos 7,则需要下载el7版本的GitLab;

若Linux版本为Centos 8,则需要下载el8版本的GitLab;

若Linux版本为Alibaba Cloud Linux release 3,则需要下载el8版本的GitLab。

下载el7版本的GitLab,登录网址:

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

https://packages.gitlab.com/app/gitlab/gitlab-ce/search?dist=el%2F7&page=17

下载el8版本的GitLab,登录网址:

https://packages.gitlab.com/app/gitlab/gitlab-ce/search?dist=el%2F8&page=13

# 下载el7版本rpm

命令:cd /usr/local/rpm

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.7.5-ce.0.el7.x86_64.rpm

或 

wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-12.7.5-ce.0.el7.x86_64.rpm/download.rpm

下载完成后:

chown -R git:git /usr/local/rpm
rpm -ivh gitlab-ce-12.7.5-ce.0.el7.x86_64.rpm

若结果显示“policycoreutils-python is needed by gitlab-ce”,则说明运行出现错误。又因为Linux版本为Centos 7,GitLab版本为el7,所以可以使用命令“yum install policycoreutils-python”来解决这个问题。若使用上述命令无效,则说明Linux版本一定不是centos 7。然后重新安装GitLab。

# 下载el8版本rpm

命令:

cd /usr/local/rpm
wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-12.7.5-ce.0.el8.x86_64.rpm/download.rpm
chown -R git:git /usr/local/rpm
rpm -ivh download.rpm

若结果显示“policycoreutils-python-utils is needed by gitlab-ce”,则说明运行出现错误。又因为Linux版本为Centos 8或Alibaba Cloud Linux release 3,GitLab版本为el8,所以可以使用命令“yum install policycoreutils-python-utils”来解决这个问题。若使用上述命令无效,则说明Linux版本一定不是centos 8或Alibaba Cloud Linux release 3。然后重新安装GitLab。

方法二:通过yum源安装。

新建/etc/yum.repos.d/gitlab-ce.repo文件,并在文件中写入下面的代码:

[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
Repo_gpgcheck=0
Enabled=1
Gpgkey=https://packages.gitlab.com/gpg.key

# 更新本地yum缓存

命令:yum makecache

# 安装GitLab社区版

命令:yum install gitlab-ce #自动安装最新版

或 yum install gitlab-ce-x.x.x #安装指定版本

第四步,修改配置文件。

1)修改配置文件/etc/gitlab/gitlab.rb,在文件中做如下修改:

# 把网址改为服务器公网IP(默认IP端口为8080,若8080已经使用,自定义其它端口),这个IP一定要在阿里云上进行授权配置。

external_url 'http://x.x.x.x'

2)确保防火墙启动成功

命令:systemctl status firewalld

若结果显示“Active: inactive (dead)”,则需要启动防火墙。

systemctl start firewalld

若结果显示“Active: active (running)”,则可以运行下面的命令:

sudo firewall-cmd --permanent --add-service=http

sudo firewall-cmd --permanent --add-service=https

sudo systemctl reload firewalld

若结果都显示“success”,则说明防火墙启动成功。

3)把GitLab的端口号放开

firewall-cmd --zone=public --add-port=80/tcp --permanent

若结果显示“success”,则说明GitLab的端口号成功放开。

4)重新加载并启动

命令:gitlab-ctl reconfigure

若结果显示“ruby_block[supervise_redis_sleep] action run”,则会一直卡无法往下进行,这时需要按住“CTRL+C”强制结束,然后运行命令“sudo systemctl restart gitlab-runsvdir”,最后再次执行命令“sudo gitlab-ctl reconfigure”。

gitlab-ctl restart

若结果显示“ok: run”,则说明配置文件修改完成。

GitLab常用命令

gitlab-ctl start # 启动所有GitLab组件

gitlab-ctl stop # 停止所有GitLab组件

gitlab-ctl restart # 重启所有GitLab组件

gitlab-ctl status # 查看服务状态

gitlab-ctl reconfigure # 启动服务

gitlab-rake gitlab:check SANITIZE=true --trace # 检查GitLab

gitlab-ctl tail # 查看日志

1)GitLab的守护进程关闭和重启

# 备注:GitLab的守护进程会默认开启nginx

命令:gitlab-ctl stop nginx

gitlab-ctl restart nginx

# 释放资源,关闭GitLab

命令:gitlab-ctl stop

2)服务器重启或者GitLab意外停止,执行命令“gitlab-ctl start”。

若结果显示“fail: sidekiq: runsv not running”等,则说明GitLab不能启动。可以使用下面命令来解决这个问题:

systemctl start gitlab-runsvdir

gitlab-ctl restart

GitLab使用

在浏览器的地址栏中输入ECS服务器的公网IP(GitLab的ip和端口号),无法访问。

第一步,linux系统开放GitLab的端口号。

命令:cd /etc/sysconfig

ls -l

结果显示“ip6tables-config”和“iptables-config”,但是没有查看到iptables文件。

第二步,安装iptables-services。

命令:yum install iptables-services

第三步,启动iptables。

命令:systemctl enable iptables

systemctl start iptables

第四步,在iptables中配置开放GitLab的端口号。

命令:vim /etc/sysconfig/iptables

在文件中添加下面的代码:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

第五步,重启防火墙。

命令:service iptables restart

第六步,重新登录GitLab。

在浏览器的地址栏中输入ECS服务器的公网IP(GitLab的ip和端口号),登录GitLab的界面,第一次登录使用的用户名为 root,而密码在文件/etc/gitlab/initial_root_password中(密码不会含空格),且会在 24 小时后自动被删除。然后修改密码即可。

第七步,登录GitLab时界面显示“502”。

这个一般是权限问题,可以给予GitLab权限。

命令:chmod -R 755 /var/log/gitlab

创建Project

第一步,安装Git工具。

在linux中安装Git,使用自带的源安装。

命令:yum install git

第二步,生成密钥文件。

使用ssh-keygen生成密钥文件.ssh/id_rsa.pub。

命令:ssh-keygen #连续回车四下

cat .ssh/id_rsa.pub #结果显示生成的秘钥

第三步,在GitLab的主页中新建一个Project。

点击“新建Project”,在“Blank Project”栏目中,填写“Project name”,其他默认,最后点击“创建Project”。

第四步,添加ssh key导入第二步中生成的密钥文件内容。

点击“添加ssh key”,然后在“key”中复制粘贴刚刚生成的秘钥,最后点击“添加key”。

项目地址在进行clone操作时需要用到。

卸载

如果gitlab安装失败,那可以卸载gitlab并重装。注意:gitlab一定要卸载干净,否则会有不少麻烦。

第一步,停服务。

命令:sudo gitlab-ctl stop

第二步,卸载gitlab。(需确认gitlab是ce版本还是ee版本)

命令:sudo rpm -e gitlab-ce

第三步,杀掉gitlab守护进程。(带有opt/gitlab/service log)

命令:ps -ef|grep gitlab

sudo kill -9 [PID]

第四步,删除磁盘文件。

命令:sudo find / -name gitlab |xargs rm -rf

若结果提示“permission deny”,则手动逐层删除即可。

第五步,下载的gitlab软件包也删除。

上一篇: 什么是CI/CD? GitLab Checking pipeline status是什么?
下一篇: gitlab配置Clone域名提示
推荐文章
  • 随着软件开发项目越来越庞大,代码管理的难度也越来越大,特别是在团队协作中。Git作为目前最流行的代码版本控制工具之一,可以帮助我们高效地管理代码版本,并且很容易集成到团队的工作流中。在Git中,我们经常会遇到需要将新增的文件夹排除在Git的库之外的情况。这些文件夹可能是临时生成的文件夹、缓存文件夹或
  • 1.迁移已有的Gitlab代码仓库存储目录gitlab通过rpm包安装后,默认存储位置在/var/opt/gitlab/git-data/repositories,通常需要更改此路径到单独的一个分区来存储仓库的数据。例如,我这里把数据存放到/data/gitlab目录下,创建/data/gitlab
  • 编辑辑/etc/gitlab/gitlab.rb修改如下:external_url "http://gitlab.example.com"例如本人设置的如下:external_url 'http://gitlab.yukx.com'设置完成之后:重置配置sudo gitlab-ctl reconfi
  • 什么是分支管理在版本控制过程中,使用多条线同时推进多个任务就是分支管理。如下图所示:分支管理的好处 ⒈同时并行推进多个功能开发,提高开发效率 ⒉各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。  分支操作允许创建另一路线/方向上开发。我们可以使用这
  • 近期在学习java,推荐使用IntelliJIDEA作为开发工具,然而昨天第一次使用,在切换两个项目的时候出现了问题,如下,项目目录下看不到源码文件了,下面记录了一下处理方式:步骤1:打开项目配置:File-ProjectStructure步骤2:导入项目模块Modules,点击+号,如下图:步骤3
  • 删除该子模块后再新建一个同名的子模块,新建的子模块已经被加入了Maven的IgnoreFiles中,需要取消该勾选。此时,子模块中的pom文件带横线。如下图所示:解决办法:打开File–Settings–Maven–IgnoredFiles;将“√”去掉,刷新maven即可点击Apply,点击OK,
学习大纲