Gitlab高可用部署文档-简易版:方案二

2 篇文章 0 订阅

部署方案

方案一:负载均衡(查看上篇文章)

2台gitlab同时工作(后续也增加节点,前期部署难度大,后续增加节点简单),
共用一台服务器的redis和postgresql

需要注意点:
1、在2台服务器都启动gitlab后,需要将git相关操作账号做同步,保证uid,gid相同,否则后续2台同时工作会出现权限问题

查看gitlab用到的账号: cat /etc/passwd 

2、因方案一研究时间较长,虽然实现2台同时工作,分担了负载压力,但是因为采用nfs部署,导致在线web端导入其他项目gz文件无法正常导入(其他功能正常),所以临时切换为第二种方案

方案二:单机部署,做好备份;另一台可应急启用

只启用一台服务器运行,每天定时备份,在这台服务器宕机的情况下启用第二台,并恢复当天备份数据(含脚本命令)
部署步骤会在下篇文章中详细介绍

方案二(安装步骤与方案一相同,主要是配置简化了不少)

因为只有2台服务用于部署gitlab
gitlab资源配置如下(端口号:8010):
Gitlab1: 192.168.16.83
Gitlab2: 192.168.16.88

NFS 网络文件系统(端口号:2049)
服务端: 192.168.16.83
客户端: 192.168.16.88*

这种方案部署相对简单,单机部署,并每天晚上定时做好备份,另一台服务器根据备份文件可做紧急恢复服务使用,无缝衔接;但是后继无法扩展,适合中小型开发团队

一、 安装gitlab (需要在2台服务器都做相同操作)

1、 下载安装包

下载地址:

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
根据需求选择下载版本,我这里使用的是15.6.2版本

2、 安装gitlab 安装命令:

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

3、 修改gitlab配置文件指定服务器ip和自定义端口:

vim  /etc/gitlab/gitlab.rb
修改端口为8010
修改ip为当前主机ip
进入编辑器后按“i”键进入编辑状态,ESC键退出编辑状态
退出并保存,命令输入 :wq

4、 启动gitlab

sudo gitlab-ctl start
常用命令
#停止gitlab: 
sudo gitlab-ctl stop
#关闭gitlab相关的进程: 
systemctl stop gitlab-runsvdir.service 
#(如果执行过该上面这条命令,后续启动也需要先执行)
systemctl start gitlab-runsvdir.service
#重新加载gitlab相关配置: 
sudo gitlab-ctl reconfigure
#重启 gitlab:
sudo gitlab-ctl restart
#查看gitlab 运行日志:
 gitlab-ctl tail

查看gitlab用到的账号: cat /etc/passwd ,并同步他们的uid,gid,保证相同

5、 后续修改配置后都需要

先执行

#重新加载gitlab相关配置: 
sudo gitlab-ctl reconfigure

再执行

#重启 gitlab: 
sudo gitlab-ctl restart

gitlab数据文件默认存储路径为: /var/opt/gitlab

如果需要修改存储路径 (我没有修改,使用是默认存储地址)
vim  /etc/gitlab/gitlab.rb
#修改一下两处
git_data_dirs({undefined
   "default" => {undefined
     "path" => "/home/gitlab/git-data",
     "failure_count_threshold" => 10,
     "failure_wait_time" => 30,
     "failure_reset_time" => 1800,
     "failure_timeout" => 30
    }
 })
#添加一行
git_data_dir "/home/data/gitlab"

二、 安装NFS (可以省略)

因为我的备份文件是存放在共享磁盘上,方便2台服务器互访问,直接读取,这样可以保证备份文件的权限和所属用户不被篡改,哥们可以考虑用 scp命令 将备份文件传到另一台服务器

1、 服务端安装

1)、检查是否已安装rpcbind、nfs-utils
rpm -qa|grep rpcbind
rpm -qa|grep nfs-utils
如果展示安装包则表示已安装
没有安装则使用 yum安装
使用
yum -y install nfs-utils 安装nfs
yum -y install rpcbind 安装 rpc
2)、编辑/etc/exports文件
vim /etc/gitlab/gitlab.rb

编辑文件内容

/var/opt/gitlab 192.168.16.88(rw,no_all_squash,sync,no_root_squash)

保存:wq

nfs配置详解

/var/opt/gitlab :共享的文件目录
192.168.16.88 允许挂载的主机ip ,88/90 表示允许同网段 88-90多个主机挂载
ro只读访问
rw读写访问
sync所有数据在请求时写入共享
asyncNFS在写入数据前可以相应请求
secureNFS通过1024以下的安全TCP/IP端口发送
insecureNFS通过1024以上的端口发送
wdelay如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide在NFS共享目录中不共享其子目录
no_hide共享NFS目录的子目录
subtree_check如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check和上面相对,不检查父目录权限
all_squash共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash保留共享文件的UID和GID(默认)
root_squashroot用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squasroot用户具有根目录的完全管理访问权限
anonuid=xxx指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx指定NFS服务器/etc/passwd文件中匿名用户的GID
3)、导出nfs配置 校验配置是否有误
#配置生效
exports -r 
#查看所有的nfs共享服务端配置
exports -v 
#检测本是否成功提供共享目录
showmount localhost 
4)、启动rpc服务 (二选一,因系统不同 可能导致启动命令不同)
systemctl start rpcbind
service rpcbind start
5)、启动nfs 服务(二选一,如果报错多试一试) 并设置开机自启
systemctl start nfs
systemctl start nfs-server.service
#开机自启
systemctl enable nfs-server.service
6)、再次验证
showmount -e 192.168.16.83

2、 客户端安装

1)、检查是否已安装nfs-utils
rpm -qa|grep nfs-utils
如果展示安装包则表示已安装
没有安装则使用 yum安装
使用yum -y install nfs-utils 安装nfs
2)、启动nfs 服务 并添加开机自启
systemctl start nfs-server.service
systemctl enable nfs-server.service
3)、验证是否能查看到服务端共享目录
showmount -e 192.168.16.83
4)、挂载服务端共享目录至本机 /apps/gitlab-home目录
mount -t nfs 192.168.16.83:/var/opt/gitlab /apps/gitlab-home

三、修改相关配置

1、主服务器相关配置

1)、持久化nfs共享盘 (如果没有用共享磁盘请忽略此步)

vim /etc/fstab

192.168.3.233:/sf/ones-gitlab /gitlab  nfs rw,sync,hard,intr,vers=3 0 0

在这里插入图片描述

2)、修改gitlab核心配置文件

vim /etc/gitlab/gitlab.rb

nginx['listen_port'] = 8010

external_url 'https://192.168.16.83/gitlab'

2、从服务器相关配置

1)、持久化nfs共享盘 并绑定 子目录(如果没有用共享磁盘请忽略此步)

vim /etc/fstab

192.168.3.233:/sf/ones-gitlab /gitlab  nfs rw,sync,hard,intr,vers=3 0 0
2)、修改gitlab核心配置文件

vim /etc/gitlab/gitlab.rb

nginx['listen_port'] = 8010

external_url 'http://192.168.16.88:8010/gitlab'

3)、上传备份脚本和恢复备份脚本

相关脚本下载
在这里插入图片描述

因gitlab启动和gitlab停止需要多个命令组合且必须按照顺序执行,
这里我将一组命令写成了脚本,执行一个命令,
脚本就会按照顺序执行相关命令,
部署过程中会存在多次启动和停止gitlab 使用其配置生效,给部署过和带来不减便捷

在这里插入图片描述

相关脚本下载

原创不易请多支持!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值