实战Gitlab高可用部署文档(简易版)方案一

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

部署方案

方案一:负载均衡

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

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
/gitlab/gitlab-data/git-data    /var/opt/gitlab/git-data none bind,rw,sync 0 0
/gitlab/gitlab-data/.ssh /var/opt/gitlab/.ssh none bind,rw,sync 0 0
/gitlab/gitlab-data/gitlab-rails/uploads /var/opt/gitlab/gitlab-rails/uploads none bind,rw,sync 0 0
/gitlab/gitlab-data/gitlab-rails/shared /var/opt/gitlab/gitlab-rails/shared none bind,rw,sync 0 0
/gitlab/gitlab-data/gitlab-ci/builds /var/opt/gitlab/gitlab-ci/builds none bind,rw,sync 0 0

图片中下方5行注释代码 需要放开,且不可少,否则2台gitlab启动会报错

在这里插入图片描述

2)、修改gitlab核心配置文件(修改redis可供另一台服务访问,并将gitlab仓库地址修改为nfs上的共享地址,此配置不可少)

vim /etc/gitlab/gitlab.rb

nginx['listen_port'] = 8010

external_url 'https://gitlab.cnsc-sh.com/gitlab'

git_data_dirs({
  "default" => {
    "path" => "/gitlab/gitlab-data/git-data",
    "gitaly_address" => "unix:/var/opt/gitlab/gitaly/gitaly.socket",
    "fallback_path" => "/var/opt/gitlab/git-data"
   }
})

gitlab_rails['uploads_directory'] = "/gitlab/gitlab-data/gitlab-rails/uploads"
gitlab_rails['shared_path'] = '/gitlab/gitlab-data/gitlab-rails/shared'
gitlab_ci['builds_directory'] = '/gitlab/gitlab-data/gitlab-ci/builds'
gitlab_rails['backup_path'] = '/var/opt/gitlab/backups'
gitlab_rails['backup_keep_time'] = 604800 # 保留备份的时间,以秒为单位(这里是一周)
redis['bind'] = '0.0.0.0'
redis['port'] = 6379

在这里插入图片描述

3)、修改数据库配置(允许另一台giltlab服务器访问数据库)

下面2个配置在每次执行命令sudo gitlab-ctl reconfigure后,都需要重新配置

建议配置好后 不执行sudo gitlab-ctl reconfigure

vim /var/opt/gitlab/postgresql/data/postgresql.conf

listen_addresses = '*'

listen_addresses = '*'

vim /var/opt/gitlab/postgresql/data/pg_hba.conf


local   all         all                               peer map=gitlab
host    all         all         192.168.16.88/32        trust

在这里插入图片描述

2、从服务器相关配置

1)、持久化nfs共享盘 并绑定 子目录(需要将绑定地址修改为自己的,这一步不可少)

vim /etc/fstab

192.168.3.233:/sf/ones-gitlab /gitlab  nfs rw,sync,hard,intr,vers=3 0 0
/gitlab/gitlab-data/git-data    /var/opt/gitlab/git-data none bind,rw,sync 0 0
/gitlab/gitlab-data/.ssh /var/opt/gitlab/.ssh none bind,rw,sync 0 0
/gitlab/gitlab-data/gitlab-rails/uploads /var/opt/gitlab/gitlab-rails/uploads none bind,rw,sync 0 0
/gitlab/gitlab-data/gitlab-rails/shared /var/opt/gitlab/gitlab-rails/shared none bind,rw,sync 0 0
/gitlab/gitlab-data/gitlab-ci/builds /var/opt/gitlab/gitlab-ci/builds none bind,rw,sync 0 0

图片中下方5行注释代码 需要放开,且不可少,否则2台gitlab启动会报错

在这里插入图片描述

2)、修改gitlab核心配置文件(修改redis,postgresql使用主服务器服务,并将gitlab仓库地址修改为nfs上的共享地址,此配置不可少)

vim /etc/gitlab/gitlab.rb

nginx['listen_port'] = 8010

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

gitlab_rails['db_host'] = '192.168.16.83'

redis['socket'] = '/var/opt/gitlab/redis/redis.socket'
gitlab_rails['redis_host'] = '192.168.16.83'
gitlab_rails['redis_post'] = 6379
git_data_dirs({
  "default" => {
    "path" => "/gitlab/gitlab-data/git-data",
    "gitaly_address" => "unix:/var/opt/gitlab/gitaly/gitaly.socket",
    "fallback_path" => "/var/opt/gitlab/git-data"
   }
})

gitlab_rails['uploads_directory'] = "/gitlab/gitlab-data/gitlab-rails/uploads"
gitlab_rails['shared_path'] = '/gitlab/gitlab-data/gitlab-rails/shared'
gitlab_ci['builds_directory'] = '/gitlab/gitlab-data/gitlab-ci/builds'
gitlab_rails['pdf_enabled'] = true
gitlab_rails['pdf_viewer'] = 'local'

在这里插入图片描述

在这里插入图片描述

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
部署高可用的OpenStack平台,需要按照以下步骤进行操作: 1. 首先,了解高可用OpenStack平台的架构。这将帮助你理解整个部署过程的目标和组成部分 。 2. 确保你已经了解并熟悉Ansible部署工具的使用。Ansible是一个自动化IT工具,可以帮助你自动化部署OpenStack平台 。 3. 准备一个Ansible节点,可以是VMware中的虚拟机。你需要在该节点上提供Yum安装源和Ansible部署脚本,以便一键部署OpenStack平台和添加计算节点 。 4. 解压并打开提供的server_bak.zip文件,将其中的server_bak虚拟机作为Ansible节点。在VMware Workstation软件中,手动最小化安装4台CentOS 7.2系统的服务器作为OpenStack节点 [3]。 5. 根据所使用的版本和具体需求,按照OpenStack官方文档提供的步骤进行部署。这通常包括安装和配置各个组件,如控制节点、计算节点、网络节点等。 6. 在部署过程中,确保按照高可用的要求进行配置。这可能涉及到使用负载均衡器、配置数据库集群、设置消息队列集群等。 7. 在部署完成后,进行必要的测试和验证,确保所有的节点都正常工作。 请注意,具体的部署步骤可能取决于你所选择的OpenStack版本和部署需求。建议参考OpenStack官方文档或相关的部署指南以获得详细的步骤和指导。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [实战案例——Ansible部署高可用OpenStack平台](https://blog.csdn.net/qq_45392321/article/details/109568621)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Ansible部署高可用OpenStack平台](https://blog.csdn.net/m0_60318730/article/details/121486497)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值