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
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