您现在的位置是:首页 > 正文

记一次生产环境GitLab服务和数据迁移到阿里云和GitLab版本升级

2024-02-01 04:48:20阅读 3

目录

GitLab介绍

背景

环境准备

源服务器上操作:

备份数据和配置文件

备份SSL证书

目的服务器上操作:

配置邮件服务,默认未开启postfix

安装NFS客户端

安装gitlab

升级gitlab版本

查看gitlab版本

查看PostgreSQL版本

升级gitlab到12.10.6

升级gitlab到13.0.0

升级gitlab到13.2.0

升级gitlab到13.4.0

升级gitlab到13.6.0

升级gitlab到13.8.0

升级gitlab到13.8.8


GitLab介绍

GitLab是一个用于管理代码的仓库系统,他是一个开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理代码缺陷和注释。

背景

1.由于本地服务器多次断网和机房断电,开发人员代码上传不了,造成项目开发时常中断;

2.生产是阿里云环境,生产环境版本迭代时拉取代码速度慢,影响CI进度和项目进展。

3.旧版本的GitLab(12.1.6)网上已经爆出安全漏洞,必须升级到13.8.8及以上。

环境准备

服务器 环境
源服务器 本地I环境搭建的服务
目的服务器 阿里云ECS
远程数据存储 阿里云NAS

源服务器上操作:

首先要关闭外网访问使用户不能上传下载,如果有用户上传代码备份数据会丢失部分代码。

查看备份配置

vi /etc/gitlab/gitlab.rb
#查看下面两行的配置
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/opt/gitlab/backups"

在当前目录创建备份数据用的目录

mkdir /backup/conf -p
cd /backup

备份数据和配置文件

gitlab-rake gitlab:backup:create

停止gitlab服务

gitlab-ctl stop

备份配置文件

rsync /etc/gitlab/gitlab.rb /backup/conf/
rsync /etc/gitlab/gitlab-secrets.json /backup/conf/
rsync /var/opt/gitlab/gitlab-rails/etc/secrets.yml /backup/conf/

拷贝备份数据到/backup目录

rsync /var/opt/gitlab/backups/xxxxxx_gitlab_backup.tar /backup/

下载安装包

gitlab-ce-12.1.6-ce.0.el7.x86_64.rpmhttps://download.csdn.net/download/m0_69287945/85270311

备份SSL证书

rsync /etc/gitlab/ssl /backup/ -r

目的服务器上操作:

首先优化Centos7系统配置,优化脚本可以直接用下面这个脚本,阿里云ECS部分设置已经优化过,可以根据实际情况修改脚本。

Centos7系统配置优化https://blog.csdn.net/m0_69287945/article/details/124561102

配置邮件服务,默认未开启postfix

vi /etc/postfix/main.cf
#修改
inet_interfaces = localhost
inet_protocols = all
#为
inet_interfaces = all
inet_protocols = ipv4

重启postfix服务

systemctl restart postfix

查看邮件服务状态

systemctl status postfix

安装NFS客户端

yum install nfs-utils -y

增加同时发起的NFS请求的数量

请执行以下命令,将同时发起的NFS请求数量修改为128。

if (lsmod | grep sunrpc); then
(modinfo sunrpc | grep tcp_max_slot_table_entries) && sysctl -w sunrpc.tcp_max_slot_table_entries=128
(modinfo sunrpc | grep tcp_slot_table_entries) && sysctl -w sunrpc.tcp_slot_table_entries=128
fi
(modinfo sunrpc | grep tcp_max_slot_table_entries) && echo "options sunrpc tcp_max_slot_table_entries=128" >> /etc/modprobe.d/alinas.conf
(modinfo sunrpc | grep tcp_slot_table_entries) && echo "options sunrpc tcp_slot_table_entries=128" >> /etc/modprobe.d/alinas.conf

手动挂载NFS文件系统

mount -t nfs -o vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.nas.aliyuncs.com:/ /mnt                                

自动挂载NFS文件系统,打开/etc/fstab配置文件,添加挂载配置。

file-system-id.region.nas.aliyuncs.com:/ /mnt nfs vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0

下载安装包

gitlab-ce-12.1.6-ce.0.el7.x86_64.rpmhttps://download.csdn.net/download/m0_69287945/85270311

安装gitlab

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

从源服务器拷贝备份的配置文件gitlab.rb和gitlab-secrets.json到新服务器gitlab的/etc/gitlab/

检查配置

vim /etc/gitlab/gitlab.rb

检查下列值:

external_url
nginx['listen_port']
gitlab_ssh_host
gitlab_shell_ssh_port
nginx['ssl_certificate']
nginx['ssl_certificate_key']
nginx['enable'] = true
nginx['redirect_http_to_https'] = true    #http重定向到https
nginx['redirect_http_to_https_port']
git_data_dirs

查看配置ssh拉取
首先在项目配置的Settings-Repository-Deploy Keys中添加拉取代码的机器生成的公钥(.ssh/id_rsa.pub)
修改gitlab服务器ssh的远程端口,即:vim /etc/ssh/sshd_config中的Port 端口号,修改完重启ssh

systemctl restart sshd

如果报错删除或修改拉取代码机器的.ssh/known_hosts

查看配置https访问

数据可以放到NFS里,可以放也可以不放,如果不放到NFS里就不用修改,如果想把数据放到NFS里就检查数据目录是否修改

# git_data_dirs({
#   "default" => {
#     "path" => "/mnt/nfs-01/git-data"
#    }
# })

#根据需要修改成下面的

git_data_dirs({
  "default" => {
    "path" => "/mnt/自己的目录名/git-data"
   }
})

开启gitlab

gitlab-ctl reconfigure

恢复数据,把源服务器上的备份包拷贝到目的服务器上

chmod +r /var/opt/gitlab/backups/xxxxxx_gitlab_backup.tar
gitlab-rake gitlab:backup:restore BACKUP=xxxxxx

拷贝源服务器上的/var/opt/gitlab/gitlab-rails/etc/secrets.yml和/etc/gitlab/gitlab-secrets.json到目的服务器的同名目录下,

重启gitlab,否则部分网页打不开

gitlab-ctl reconfigure

更改ssh服务的端口

vim /etc/ssh/sshd_config
Port 7088

重启ssh服务

systemctl restart sshd

做个定时任务,每天3点备份一次数据,4点删除前三天备份的文件

0 3 * * * gitlab-rake gitlab:backup:create >> /opt/gitlab-backup.txt
0 4 * * * find /var/opt/gitlab/backups/*_gitlab_backup.tar -type f -mtime +3 -exec rm {} \;

修改备份文件的目录

如果修改默认备份目录,需要运行 gitlab-ctl reconfigure 命令使配置生效,并且运行 gitlab-ctl restart 命令重新启动服务器。

vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = "修改成你自己想要存放备份数据包的目录"

升级gitlab版本

查看gitlab版本

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

查看PostgreSQL版本

/opt/gitlab/embedded/bin/psql --version

创建ECS快照,先备份数据

gitlab-rake gitlab:backup:create

升级gitlab到12.10.6

下载地址:

gitlab-ce-12.10.6-ce.0.el7.x86_64.rpmhttps://download.csdn.net/download/m0_69287945/85270367

rpm -Uvh gitlab-ce-12.10.6-ce.0.el7.x86_64.rpm

查看gitlab版本

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
#12.10.6

查看PostgreSQL版本

/opt/gitlab/embedded/bin/psql --version
#psql (PostgreSQL) 11.7

重新加载配置

gitlab-ctl reconfigure

重启Gitlab服务

gitlab-ctl restart

升级gitlab到13.0.0

下载地址:

gitlab-ce-13.0.0-ce.0.el7.x86_64.rpmhttps://download.csdn.net/download/m0_69287945/85270270

rpm -Uvh gitlab-ce-13.0.0-ce.0.el7.x86_64.rpm

查看gitlab版本

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
#13.0.0

查看PostgreSQL版本

/opt/gitlab/embedded/bin/psql --version
#psql (PostgreSQL) 11.7

重新加载配置

gitlab-ctl reconfigure

重启Gitlab服务

gitlab-ctl restart

升级gitlab到13.2.0

下载地址:gitlab-ce-13.2.0-ce.0.el7.x86_64.rpmhttps://download.csdn.net/download/m0_69287945/85270423

rpm -Uvh gitlab-ce-13.2.0-ce.0.el7.x86_64.rpm

查看PostgreSQL版本

/opt/gitlab/embedded/bin/psql --version
#psql (PostgreSQL) 11.7

升级gitlab到13.4.0

下载地址:gitlab-ce-13.4.0-ce.0.el7.x86_64.rpmhttps://download.csdn.net/download/m0_69287945/85269989

rpm -Uvh gitlab-ce-13.4.0-ce.0.el7.x86_64.rpm

查看PostgreSQL版本

/opt/gitlab/embedded/bin/psql --version
#psql (PostgreSQL) 11.9

升级gitlab到13.6.0

下载地址:gitlab-ce-13.6.0-ce.0.el7.x86_64.rpmhttps://download.csdn.net/download/m0_69287945/85270047

rpm -Uvh gitlab-ce-13.6.0-ce.0.el7.x86_64.rpm

查看PostgreSQL版本

/opt/gitlab/embedded/bin/psql --version
#psql (PostgreSQL) 11.9

升级gitlab到13.8.0

下载地址:gitlab-ce-13.8.0-ce.0.el7.x86_64.rpmhttps://download.csdn.net/download/m0_69287945/85270051

rpm -Uvh gitlab-ce-13.8.0-ce.0.el7.x86_64.rpm

查看PostgreSQL版本

/opt/gitlab/embedded/bin/psql --version
#psql (PostgreSQL) 12.4

升级gitlab到13.8.8

下载地址:gitlab-ce-13.8.8-ce.0.el7.x86_64.rpmhttps://download.csdn.net/download/m0_69287945/85270028

rpm -Uvh gitlab-ce-13.8.8-ce.0.el7.x86_64.rpm

查看gitlab版本

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
#13.8.8

查看PostgreSQL版本

/opt/gitlab/embedded/bin/psql --version
#psql (PostgreSQL) 12.6

重新加载配置

gitlab-ctl reconfigure

重启Gitlab服务

gitlab-ctl restart

升级要按顺序一个一个升级,每个gitlab的版本号要跟数据库的版本号对应,如果有报错,检查一下当前gitlab的数据库版本号。

网站文章

  • SpringBoot整合Elasticsearch-elasticsearch-rest-high-level-client

    前言在前面几篇文章中演示ES安装时对外暴露有两个端口,一个是9200,一个是9300,这里9300是一个TCP端口,ES集群环境下也是通过9300端口通信的,是长连接的形式通信的,这里不推荐使用Spr...

    2024-02-01 04:48:13
  • Spring Boot 系统启动任务

    1. 背景 有时候我们会希望在Spring Boot项目启动时,完成一些初始化工作。 例如加载初始化的缓存信息,初始化一些系统运行的基本参数。 此时,就可以通过Spring Boot系统启动任务实现,...

    2024-02-01 04:48:05
  • DVWA--存储型XSS(初中高)

    DVWA--存储型XSS(初中高)

    选择“View Source”查看源程序,发现服务器端对message框内容使用了htmlspecialchars() 函数进行转义,对name框使用str_replace()函数进行替换。选择“Vi...

    2024-02-01 04:47:36
  • Spring框架源码(五) @configuration源码深度解析

    Spring框架源码(五) @configuration源码深度解析

    Configuration 注解是spring-context模块提供的一个给开发者使用的配置类注解,开发者可以通过@Configuration注解来定义配置类,也可以使用xml形式注入。例如配置数据...

    2024-02-01 04:47:30
  • Aria2下载软件的Linux安装、配置文件编辑、开机启动、浏览器插件连接

    Aria2下载软件的Linux安装、配置文件编辑、开机启动、浏览器插件连接

    1. 安装。 这里主要是在Debian及衍生发行版上的操作。 直接用 apt install aria2 即可 apt update apt install aria2 # aria2 的命令是 ar...

    2024-02-01 04:47:23
  • 新起点

    2019年7月9日:进入新的工作环境,面对全新的电脑,就像现在的自己一样,犹如一张白纸,可以随意涂画。年轻的心斗志昂扬,重新出发创出属于自己的精彩。1. 不断学习2.认真负责3.勤学好问...

    2024-02-01 04:47:17
  • monkey环境搭建

    monkey环境搭建

    monkey的安装环境需要4块:1.Java环境JDK的安装2.Android SDK环境3.启动模拟器(夜神模拟器)或者真机4.执行monkey测试命令第一部分:Java环境的安装1)下载好JDK的安装包后,双击安装2)配置环境变量:我的电脑--右键属性--高级系统设置--环境变量在系统变量处点击新建:填写变量名和JDK的安装路径JAVA...

    2024-02-01 04:46:47
  • 记录自己第一次科研经历

    这里写自定义目录标题科研之路研究方向选择功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右Sma...

    2024-02-01 04:46:40
  • 什么是Intel Elkhart Lake?专用于物联网的处理器系列

    什么是Intel Elkhart Lake?专用于物联网的处理器系列

    Elkhart Lake将部署的关键应用程序将包括长时间的正常运行时间、不间断的操作、在空间受限的位置实施,以及频繁的冲击、振动和温度变化。与Bay Trail相比,Elkhart Lake处理器的P...

    2024-02-01 04:46:33
  • Missing type in composite literal

    首先来看一个示例,它在idea中会直接提示错误。 package main import ( "fmt" ) type Person struct { Name string Ag...

    2024-02-01 04:46:06