gitlab迁移

目前公司在做业务迁移,需要把所有的东西迁移到腾讯云。原本是在阿里云做的gitlab。要整体迁移到腾讯云中。

查看gitlab版本:

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

由于gitlab存在兼容性问题,所以迁移后的环境最好和原本的环境一样。
现在来安装gitlab服务器

查看linux版本:
[root@VM_0_12_centos /]# uname -a
Linux VM_0_12_centos 3.10.0-693.17.1.el7.x86_64 #1 SMP Thu Jan 25 20:13:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
说明是centos 7

然后开始安装gitlab环境

1. 安装依赖软件
yum -y install policycoreutils openssh-server openssh-clients postfix
2.设置postfix开机自启,并启动,postfix支持gitlab发信功能
systemctl enable postfix && systemctl start postfix
3.下载gitlab安装包,然后安装
centos 6系统的下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
centos 7系统的下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
我的是centos7,所以我在https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7中找了个gitlab8.0.0版本,建议下载一个比较新的版本,我这里选了一个比较旧的版本仅仅是实验
下载rpm包并安装:
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-8.0.0-ce.0.el7.x86_64.rpm
rpm -i gitlab-ce-8.0.0-ce.0.el7.x86_64.rpm
4.修改gitlab配置文件指定服务器ip和自定义端口:
vim  /etc/gitlab/gitlab.rb
ps:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口

5.重置并启动GitLab

执行:

gitlab-ctl reconfigure

gitlab-ctl restart

6.访问 GitLab页面

如果没有域名,直接输入服务器ip和指定端口进行访问


初始账户: root 密码: 5iveL!fe

第一次登录修改密码

安装好了gitlab之后,再来做迁移

1、备份原a服务器上的的数据

gitlab-rake gitlab:backup:create RAILS_ENV=production
PS: 备份后的文件一般是位于/var/opt/gitlab/backups下, 自动生成文件名文件名如1481529483_gitlab_backup.tar
2. 将步骤2生成的tar文件拷贝到b服务器上相应的backups目录下
可以利用scp进行直接拷贝.
scp username@src_ip:/var/opt/gitlab/backups/1481529483_gitlab_backup.tar /var/opt/gitlab/backups
PS: username为原服务器的用户名,src_ip原服务器IP地址
3. 在b服务器恢复数据
gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1481529483
PSBACKUP的时间点必须与原服务器备份后的文件名一致

4.出错解决:
数据迁移到后检查登录gialab有时候会跳出500报错(Something went wrong on our end.)以及无法正常新建用户
查看日志:tail -f /var/log/gitlab/redis/current
Can't save in background: fork: Cannot allocate memory
解决方案
修改/etc/sysctl.conf
加上vm.overcommit_memory = 1, Linux内核会根据参数vm.overcommit_memory参数的设置决定是否放行。
修改完执行sysctl -p
vm.overcommit_memory = 1,直接放行
vm.overcommit_memory = 0:则比较 此次请求分配的虚拟内存大小和系统当前空闲的物理内存加上swap,决定是否放行。
vm.overcommit_memory = 2:则会比较进程所有已分配的虚拟内存加上此次请求分配的虚拟内

猜你喜欢

转载自blog.csdn.net/xielinrui123/article/details/80548773