Linux离线部署gitLab及使用教程

一、下载gitLab
地址:Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

找到这个最新版

点击下载

二、上传到linux系统
笔者是在windows系统下的vmware虚拟机中部署安装的,虚拟机中安装了centOS 7,先打开虚拟机 ,使用xshell工具连接上

输入命令ifconfig,记录好ip 192.168.19.16

使用Xftp把下载的gitLab安装包上传到linux系统上,笔者是放在根目录的opt文件夹下,可以根据实际需要调整

再使用XShell工具进入opt目录,输入ll 查看文件目录

cd /opt

ll

可以看到上传的安装包

三、安装gitLab
在安装之前,有两个依赖需要检查下 openssh-server 和 policycoreutils-python

检查命令如下 (复制时注意首尾不要复制上空格了):

rpm -qa | grep -i openssh-server

rpm -qa | grep -i policycoreutils-python

 

可以看到笔者安装的linux系统已经包含了,如果你输入命令回车后,没有返回对应的信息,那需要单独下载依赖了,具体安装下载自行搜索,不再赘述,安装好缺失的依赖,再执行上述两条命令,查看依赖是否已安装好

接着执行安装gitLab命令(红色部分是你下载gitlab包名称)

sudo rpm -ivh gitlab-ce-16.9.2-ce.0.el7.x86_64.rpm

出现如下图所示,说明gitLab已安装成功

 

 

四、修改ip和port端口
这里使用vim,主要是为了语法高亮,使用vi也可以,手动敲命令

vim /etc/gitlab/gitlab.rb

打开文件如下
按下 i 键进入编辑模式

把图中的ip地址修改为之前记录的 192.168.19.16(最好写成localhost,万一服务器ip修改了,还要改这里的配置文件),端口号改为10005,随意,保证端口不会被其他服务使用就行

 

改好后,按下 Esc 键,输入 :wq 回车保存即可

五、重新加载配置文件
gitlab-ctl reconfigure

此过程较长,耐心等待,中途不要操作

出现 gitlab Reconfigured! 即操作成功。

 

六、查看用户名和密码


/etc/gitlab/initial_root_password 是初始化密码的临时存放地,并且在第一次重新加载配置 gitlab-ctl reconfigure 24小时后会被清理

通过命令,还是手敲,复制的可能有空格

vim /etc/gitlab/initial_root_password

 

这个密码要保存好,是root用户名的密码,root用户是最高权限用户,gitLab后续的用户创建必须要先用root用户创建,当然可先用root用户创建一个和root同样权限的管理员账户,后续使用这个新建的管理员账户去添加人员和创建项目

七、访问gitLab
浏览器输入 http://192.168.19.16:10005/

发现无法访问

systemctl status firewalld 查看防火墙状态

 

 

发现防火墙是开启的,要么选择关闭防火墙

sudo systemctl disable firewalld.service

建议是开放端口

sudo firewall-cmd --permanent --add-port=10005/tcp

 

 

重载防火墙

sudo firewall-cmd --reload

 

到此,gitLab已经安装好可以使用了

gitLab开机自动启动命令,笔者安装的gitLab版本好像不需要执行这个命令,但为了以防万一还是执行下比较好

sudo systemctl enable gitlab-runsvdir.service

八、修改gitLab端口
如果你想修改gitLab端口

则再次执行 vim /etc/gitlab/gitlab.rb 修改端口号

然后执行 sudo firewall-cmd --permanent --add-port=newPort/tcp 命令,newPort替换为新修改的端口号(如果防火墙开启的话,没开启就不需要执行了)

应用修改

sudo gitlab-ctl reconfigure

重启gitLab服务

sudo gitlab-ctl restart
-------------------------------------------------------------------------------------------------------------------------------

root@localhost gitlab]# rpm -ivh gitlab-ce-17.7.0-ce.0.el7.x86_64.rpm
警告:gitlab-ce-17.7.0-ce.0.el7.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID f27eab47: NOKEY
错误:依赖检测失败:
policycoreutils-python 被 gitlab-ce-17.7.0-ce.0.el7.x86_64 需要


出现这个错误的原因是 GitLab 依赖于 policycoreutils-python 包,但该包没有安装在你的系统中。因此,rpm 安装过程中无法解决依赖问题,导致安装失败。

下载依赖

policycoreutils-python-2.5-22.amzn2.x86_64.rpm Amazon Linux 2 Download

yum install --downloadonly --downloaddir=/path/to/save/ curl openssh-server openssh-clients perl policycoreutils-python
上面安装也不行最后改成联网安装

sudo yum localinstall /path/to/save/*.rpm 安装依赖

再重新安装gitlab

rpm -ivh /path/to/gitlab-ce-17.7.0-ce.0.el7.x86_64.rpm

查看gitlab的服务状态

sudo systemctl status gitlab-runsvdir

 

如果服务没有启动,可以尝试手动启动:

sudo systemctl start gitlab-runsvdir
查看gitlab日志

sudo tail -f /var/log/gitlab/gitlab-rails/production.log

确认 GitLab 是否正确安装,并查看 GitLab 版本:sudo gitlab-rake gitlab:env:info

[root@localhost ~]# sudo gitlab-rake gitlab:env:info


System information
System:
Current User: git
Using RVM: no
Ruby Version: 3.2.5
Gem Version: 3.5.23
Bundler Version:2.5.11
Rake Version: 13.0.6
Redis Version: 7.0.15
Sidekiq Version:7.2.4
Go Version: unknown

GitLab information
Version: 17.7.0
Revision: eedc7c560c9
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: PostgreSQL
DB Version: 14.11
URL: http://gitlab.example.com
HTTP Clone URL: http://gitlab.example.com/some-group/some-project.git
SSH Clone URL: git@gitlab.example.com:some-group/some-project.git
Using LDAP: no
Using Omniauth: yes
Omniauth Providers:

GitLab Shell
Version: 14.39.0
Repository storages:
- default: unix:/var/opt/gitlab/gitaly/gitaly.socket
GitLab Shell path: /opt/gitlab/embedded/service/gitlab-shell

Gitaly
- default Address: unix:/var/opt/gitlab/gitaly/gitaly.socket
- default Version: 17.7.0
- default Git Version: 2.47.0
[root@localhost ~]#
GitLab 是否正常运行。例如,运行以下命令来检查 GitLab 的状态

sudo gitlab-ctl status


这个命令会列出 GitLab 中的各个服务(如 PostgreSQL、Redis、Sidekiq 等)的状态,检查这些服务是否在运行。

配置防火墙 (如果需要)
如果你在防火墙上启用了端口限制,需要确保 GitLab 使用的端口(默认是 80 和 443)已经被允许通过防火墙。

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload

配置 GitLab
GitLab 安装完成后,需要配置 GitLab 以便它能够正确运行。可以通过修改 /etc/gitlab/gitlab.rb 配置文件来定制 GitLab 设置。例如,如果你有自己的域名或自定义端口,需要在该配置文件中进行修改。

sudo vi /etc/gitlab/gitlab.rb

修改以下参数(如果需要):

external_url 'http://gitlab.example.com':将其改为你希望访问 GitLab 的 URL。
重建配置
配置好之后,执行以下命令以应用配置更改:

sudo gitlab-ctl reconfigure

5. 启动 GitLab
启动 GitLab 服务:

sudo gitlab-ctl start

6. 访问 GitLab
安装并启动 GitLab 后,使用浏览器访问你设置的 external_url 地址。例如:

http://gitlab.example.com

配置自动启动
为了确保 GitLab 在系统启动时自动启动,可以启用 GitLab 的服务:

sudo systemctl enable gitlab-runsvdir
————————————————

1、下载

1.1、网址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
1.2、选择版本

2、安装

2.1、将安装包上传到服务器

2.2、检查相关依赖是否安装

使用命令 rpm -qa | grep -i (要查看的依赖名);如果安装了,会返回具体的版本信息,没安装则不返回任何信息。rpm -qa代表查询本机上安装的所有程序,grep查找具体的程序名称。

 rpm -qa | grep -i openssh-server
 rpm -qa | grep -i policycoreutils-python
2.2.1、执行 rpm -qa | grep -i openssh-server

如上图所示,表示已经安装。

2.2.2、执行 rpm -qa | grep -i policycoreutils-python

如上图所示,表示没有安装。

2.2.2.1、下载 policycoreutils-python

网址:https://amazonlinux.pkgs.org/2/amazonlinux-core-x86_64/policycoreutils-python-2.5-22.amzn2.x86_64.rpm.html

2.2.2.2、将下载好的包上传到服务器

2.2.2.3、执行安装命令 rpm -ivh ./policycoreutils-python-2.5-22.amzn2.x86_64.rpm

还是少了一堆依赖,可能是我安装Linux系统的原因,缺的依赖太多。
依照上面下载、安装policycoreutils-python 的方法把缺少的依赖全部下载并传到服务器安装。
若是遇到有循环依赖的,最暴力的方法,在安装命令后加 --force --nodeps。

2.3、执行安装命令

命令: sudo rpm -ivh gitlab-ce-15.7.3-ce.0.el7.x86_64.rpm
结果:安装成功

3、配置

3.1、修改ip和端口

命令:vi /etc/gitlab/gitlab.rb
操作:修改 external_url ,将 http://gitlab.example.com 换成自己的 ip 或域名

3.2、重新加载配置文件

命令:gitlab-ctl reconfigure
看到 gitlab Reconfigured! 即操作成功。

3.3、登录
3.3.1、查看用户名和密码

用户名:root
密码:tqjtouQLZr9sLkVGeShLz+vSE/iE1F+FQliIIDzrVPo=
sudo cat /etc/gitlab/initial_root_password

3.3.2、访问登录页

地址:步骤3.1填写的地址

3.3.3、登录成功

这里是选择是否允许其他用户注册,一般选不允许。

4、常用命令

gitlab-ctl start 					#启动全部服务
gitlab-ctl restart					#重启全部服务
gitlab-ctl stop 					#停止全部服务
gitlab-ctl restart nginx 			#重启单个服务,如重启nginx
gitlab-ctl status 					#查看服务状态
gitlab-ctl reconfigure 				#重新加载配置文件
gitlab-ctl show-config 				#验证配置文件
gitlab-ctl uninstall 				#删除gitlab(保留数据)
gitlab-ctl cleanse 					#删除所有数据,从新开始
gitlab-ctl tail <service name>		#查看服务的日志
gitlab-ctl tail nginx  				#如查看gitlab下nginx日志
gitlab-rails console  				#进入控制台
gitlab-ctl help                  	#查看gitlab帮助信息

 ------------------------------------------------------------------------------------------------------------------

目录

 一、下载gitlab离线rpm安装包

二、在Linux服务器中部署gitlab

三、gitlab服务器的运维

四、gitlab配置文件解析

 一、下载gitlab离线rpm安装包
        没有网络的安装方式:

        https://packages.gitlab.com/gitlab/gitlab-ce 这是离线的安装包

        我们打开网站找到对应的系统版本进行下载,建议下载最新版本的前面一个版本兼容性会更好,而且容易找到汉化包。

二、在Linux服务器中部署gitlab
        我把下载的gitlab的RPM包和gitlab的汉化包放在了Linux服务器的/opt目录下,通过rpm的命令进行安装时发现缺少依赖,在本地环境中我配置了私有的yum仓库并且在yum仓库中存放了很多依赖包,建议在内网的环境中无法使用外部yum的情况下自行配置。详细见私有Yum仓库搭建。

执行以下命令:

rpm -i gitlab-ce-12.3.0.ce.0.el7.x86_64.rpm


        发现存在依赖未安装,依赖包为policycoreutils-python.x86_64。因为配置了内部的YUM仓库,所以直接使用yum命令安装依赖后,在执行上面的命令即可。

        执行完成上面的命令后,会提示你需要更改那些配置项,这里把/etc/gitlab/gitlab.rb的配置文件打开,修改external_url的条目变成自己本机的IP地址即可。

        更改完配置文件后需要用命令使得配置生效,使用以下命令。

gitlab-ctl reconfigure //初始化gitlab 第一次初始化时间比较长耐心等待
gitlab-ctl restart | start | stop //重启|启动|停止 gitlab
gitlab-ctl --help // 查看gitlab-ctl命令的帮助信息

        注意:这里会默认使用80的端口,如果在客户端不能打开http://IP的话,需要排查服务器的防火墙是否给了通过策略,是否80端口有原始的占用。

        到了这一步基本的gitlab部署就已经完成了,但是英文的界面在国内多少有点吃力,所以如果需要进一步汉化则执行下面的操作。

        首先是下载好对应版本的gitlab汉化包,需要到github上自行下载,如果需要其他版本的汉化包则返回上一层进行下载。 这是12-3版本的汉化下载链接,这里需要注意汉化的版本必须和gitlab本身对应的版本一致,否则会出错。汉化执行以下指令:

tar -zvxf gitlab-v12.0.3-zh.tar.gz //解压汉化包

gitlab-ctl stop //停止gitlab服务

//覆盖文件到gitlab
\cp -r gitlab-v12.0.3-zh/* /opt/gitlab/embedded/service/gitlab-rails/

gitlab-ctl start //启动gitlab
        完成以上操作之后,在浏览器登录gitlab的管理员账号,设置语言栏目为简体中文即可。       

三、gitlab服务器的运维
        gitlab服务器的运维主要涉及到,gitlab服务的备份、迁移、恢复、升级。下面会对这些操作进行总结。

        gitlab的备份操作。备份时需要保持gitlab处于正常运行状态,执行gitlab-rake进行备份。

gitlab-rake gitlab:backup:create


        备份命令会在***/var/opt/gitlab/backups***目录下创建一个名称类似1530156812_2018_06_28_10.8.4_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1530156812_2018_06_28_10.8.4是备份创建的日期。另外需要注意备份gitlab的配置文件,nginx配置文件和邮箱的配置文件。

        注意:在/var/opt/gitlab/这个目录下的文件也是gitlab的重要配置文件。

        gitlab的迁移操作。迁移的话还是利用备份文件,经过上一步的备份之后。首先在新的服务器上安装相同版本的gitlab服务,其次在将备份生成的备份文件发送到新服务器的备份文件目录下。最后执行gitlab的恢复操作指令即可生效。

        gitlab的恢复操作。

#停止数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
#修改文件权限。
chmod 777 /var/opt/gitlab/backups/1530156812_2018_06_28_10.8.4_gitlab_backup.tar

#从1530156812_2018_06_28_10.8.4编号备份中恢复
gitlab-rake gitlab:backup:restore BACKUP=1530156812_2018_06_28_10.8.4

#启动gitlab
gitlab-ctl start
        gitlab的升级操作。gitlab的升级需要比较谨慎,要事先确定好升级的版本路劲在进行升级,因为大版本的跳跃升级是会出错误的,要到官网找到升级的路径在进行升级, 这是路径和升级解析

复制
gitlab-ctl stop #关闭gitlab服务
gitlab-rake gitlab:backup:create #备份

#卸载当前的gitlab版本
rpm -evh gitlab-ce-14.0.0-xxx
#安装新的gitlab版本
rpm -ivh gitlab-ce-14.3.6-xxx.rpm

gitlab-ctl reconfigure #重编译
gitlab-ctl start #启动
rpm -qa gitlab-ce #验证是否升级成功

#按照安装路径循环进行以上的升级安装

#安装成功后执行恢复操作,重新加载配置并启动
gitlab-ctl reconfigure
gitlab-ctl restart

posted @ 2025-02-21 10:55  hanease  阅读(597)  评论(0)    收藏  举报