介绍
由于项目分割需要搭建双仓库地址,但是之前的gitlab是旧版本的10.1.1版本的。
现在实现备份还原,则需要同样版本的gitlab
检查gitlab版本
root test:~#cat/opt/gitlab/embedded/service/gitlab-rails/VERSION
版本不一致备份恢复报错
debian9安装指定版本gitlab,并实现备份还原
gitlab获取安装
[官方下载安装地址](https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/jessie/gitlab-ce_10.1.1-ce.0_amd64.deb)
部署安装gitlab
root test:~#curl-s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh|sudo bash
root test:~#sudo apt-get install gitlab-ce=10.1.1-ce.0
修改gitlab配置文件
vim/etc/gitlab/gitlab.rb
external_url'http://gitlab.hanye.com'#gitlab展示和clone地址
gitlab_rails['object_store']['enabled']=false
gitlab_rails['object_store']['connection']={}
gitlab_rails['object_store']['storage_options']={}
gitlab_rails['object_store']['proxy_download']=false
gitlab_rails['object_store']['objects']['artifacts']['bucket']=nil
gitlab_rails['object_store']['objects']['external_diffs']['bucket']=nil
gitlab_rails['object_store']['objects']['lfs']['bucket']=nil
gitlab_rails['object_store']['objects']['uploads']['bucket']=nil
gitlab_rails['object_store']['objects']['packages']['bucket']=nil
gitlab_rails['object_store']['objects']['dependency_proxy']['bucket']=nil
gitlab_rails['object_store']['objects']['terraform_state']['bucket']=nil
gitlab_rails['gitlab_shell_ssh_port']=7080#修改gitlab使用SSH的端口
gitlab_rails['gitlab_shell_git_timeout']=800#修改gitlab使用SSH链接超时时间
gitlab_rails['rack_attack_git_basic_auth']={#开放白名单
'enabled'=>true,
'ip_whitelist'=>["127.0.0.1","123.160.235.102","123.160.172.34","123.160.234.96"],
'maxretry'=>100,
'findtime'=>60,
'bantime'=>3600
}
gitlab_rails['redis_host']="127.0.0.1"#链接redis服务配置
gitlab_rails['redis_port']=6379
gitlab_rails['redis_password']="passwd"
gitlab_rails['redis_database']=0
unicorn['listen']='192.168.31.10'#unicorn监听地址(内网或者外网,看自己需要)
unicorn['port']=8091#unicorn监听端口(netstat-ntpl查看服务器已经占用的端口,不要冲突,不然起不来unicorn服务)
nginx['enable']=false#nginx不开启默认使用socket监听
nginx['listen_addresses']=['*','[::]']
external_url#是访问和gitlab克隆对外展示的地址
debian9安装指定版本gitlab,并实现备份还原
gitlab_rails['gitlab_shell_ssh_port']#是你的服务器ssh监听的地址,默认22。
gitlab_rails['redis_host']#redis服务器监听地址,默认localhost
检查配置和启动gitlab
root test:~#gitlab-ctl reconfigure#检查配置文件
root test:~#gitlab-ctl restart
nginx代理到gitlab
cat/usr/local/nginx/conf/vhost/gitlab.hanye.com.conf
proxy_cache_path proxy_cache keys_zone=gitlab:10m max_size=1g levels=1:2;
proxy_cache gitlab;
map$http_upgrade$connection_upgrade{
default upgrade;
''close;
}
upstream gitlab-workhorse{
server unix:/var/opt/gitlab/gitlab-workhorse/socket;
}
server{
listen*:80;
server_name gitlab.hanye.com;
server_tokens off;##Don't show the nginx version number,a security best practice
include deny_host.conf;
client_max_body_size 0;
add_header Strict-Transport-Security"max-age=31536000";
error_log/data/wwwlogs/gitlab_error_nginx.log;
access_log/data/wwwlogs/access_nginx.log combined;
if($http_host=""){
set$http_host_with_default"gitlab.hanye.com";
}
if($http_host!=""){
set$http_host_with_default$http_host;
}
proxy_read_timeout 3600;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Host$http_host_with_default;
proxy_set_header X-Real-IP$remote_addr;
proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;
proxy_set_header Upgrade$http_upgrade;
proxy_set_header Connection$connection_upgrade;
proxy_set_header X-Forwarded-Proto http;
location~(.git/gitlab-lfs/objects|.git/info/lfs/objects/batch$){
proxy_cache off;
proxy_pass http://gitlab-workhorse;
proxy_request_buffering off;
}
location/{
proxy_cache off;
proxy_pass http://gitlab-workhorse;
}
location/assets{
proxy_cache gitlab;
proxy_pass http://gitlab-workhorse;
}
error_page 404/404.html;
error_page 422/422.html;
error_page 500/500.html;
error_page 502/502.html;
location~^/(404|422|500|502)(-custom)?.html${
root/opt/gitlab/embedded/service/gitlab-rails/public;
internal;
}
}
启动报错502处理方式
1 nginx访问权限拒绝
debian9安装指定版本gitlab,并实现备份还原
处理方式:
ps-ef|grep nginx#查看ngxin启动用户
sudo usermod-aG gitlab-www www#授权nginx用户附加组为gitlab-www
/etc/init.d/nginx restart#重启nginx
2其他报错使用
gitlab-rake gitlab:check检查报错
3 unicorn端口占用检查8080端口是否被占用被占用修改端口
unicorn['port']=8091#unicorn监听端口(netstat-ntpl查看服务器已经占用的端口,不要冲突,不然起不来unicorn服务)
gitlab备份还原
gitlab备份:
/usr/bin/gitlab-rake gitlab:backup:create>/dev/null
默认备份地址:gitlab_rails['backup_path']="/var/opt/gitlab/backups"指定
会在/var/opt/gitlab/backups生成一个序号+日期的备份文件
gitlab还原
gitlab-rake gitlab:backup:restore BACKUP=1606073532_2020_11_23_10.1.1#指定序号恢复
会覆盖用户配置需要手动yes确认
会覆盖SSH-key文件需要Yes确认
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69920892/viewspace-2738549/ ,如需转载,请注明出处,否则将追究法律责任。