Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。

前言:环境版本:

linux :CentOS Linux release 7.7.1908

gitlab: 11.5.1

注意:应为我gitlab之前的备份版本是gitlab11.5.1的,所以我第一步安装的gitlab版本也就选择11.5.1了,应为备份恢复gitlab版本必须一致,否则无法恢复!

 

第一步: 备份老版本的gitlab备份文件

 

进入你的老服务器的gitlab备份文件目录    /var/opt/gitlab/backups/

cd  /var/opt/gitlab/backups

执行备份命令:

gitlab-rake gitlab:backup:create

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第1张图片

执行过程可能需要一点时间。成功后会打出一个压缩文件1577425161_2019_12_27_11.5.1_gitlab_backup.tar

把压缩文件拷贝出来备用!

 

第二步: 新服务器安装gitlab

注意:如果想要迁移恢复gitlab那么版本必须跟老服务器gitlab版本保持一致

1:创建gitlab镜像文件存放地址

mkdir /usr/gitlab
cd /usr/gitlab

2:安装所需的依赖:curl,policycoreutils-python,ssh,防火墙,postfix(用于邮件通知) ,wget

(1):安装 curl,policycoreutils-python,ssh

sudo yum install -y curl policycoreutils-python openssh-server

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第2张图片

将SSH服务设置成开机自启动,安装命令:

sudo systemctl enable sshd  

启动SSH服务,安装命令:

sudo systemctl start sshd

(2):安装防火墙

yum install firewalld systemd -y

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第3张图片

complete!表示安装成功!

开启防火墙命令:

service firewalld  start

添加http服务到firewalld。(pemmanent表示永久生效,若不加--permanent系统下次启动后就会失效)

sudo firewall-cmd --permanent --add-service=http

重启防火墙命令:

sudo systemctl reload firewalld

防火墙可以按照自己的需求进行开通或者关闭!!

 

(3):postfix(用于邮件通知) 

安装命令:

sudo yum install postfix

设置为开机自动启动:

sudo systemctl enable postfix

启动postfix

sudo systemctl start postfix

启动postfix可能会报错

出现: Active: failed (Result: exit-code)

解决方法:
vi /etc/postfix/main.cf的设置  

inet_protocols = ipv4  
inet_interfaces = all  

然后重新启动就可以了!

 

(4):安装wget (从外网上下载插件) 

yum -y install wget

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第4张图片

nothing to do说明自带wget已经安装好了!

 

3:2上面所有的依赖安装完成后,开始下载gitlab镜像并安装!

(1)下载gitlab镜像

查找镜像地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

找到我们要安装的11.5.1的版本地址

下载命令:

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.5.1-ce.0.el7.x86_64.rpm

下载需要点时间。

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第5张图片

(2)安装gitlab

下载完成后,需要改变镜像文件的读写权限

权限命令:

chmod 777 gitlab-ce-11.5.1-ce.0.el7.x86_64.rpm

安装gitlab 命令:

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

安装过程需要些时间,如果出现下图,则说明安装成功。

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第6张图片

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

vi  /etc/gitlab/gitlab.rb

http://服务器ip:端口

ps:

注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口,如果你防火墙是开启的已经要记得把上面设置的gitlab端口加入防火墙白名单!

保存修改配置

gitlab-ctl   reconfigure

并启动GitLab

gitlab-ctl   restart

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第7张图片

然后就可以通过 http://服务器ip:端口 访问giitlab页面了!

如果无法访问,需要排查为什么无法访问:

这里我就给大家提供个思路,具体就不详细介绍了

思路:本机ping 服务器ip  ,本机 telnet  服务器ip gitlab端口

如果无法telnet 通gitlab的端口,需要查看gitlab的端口以及gitlab的nginx默认80端口 配置是否正确是否被占用,

检查防火墙白名单,如果用的阿里云或者腾讯云等需要检查云服务器端口安全组是否配置放行!

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第8张图片

直接输入服务器ip和指定端口进行访问

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

第一次登录修改密码

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第9张图片

(4)配置gitlab通知邮件

编辑配置文件命令:

vi /etc/gitlab/gitlab.rb

我使用的qq邮箱,在邮箱设置里打开POP3/SMTP服务,并保存好16位授权码。

 gitlab_rails['smtp_enable'] = true
 gitlab_rails['smtp_address'] = "smtp.qq.com"
 gitlab_rails['smtp_port'] = 465
 gitlab_rails['smtp_user_name'] = "******@qq.com"
 gitlab_rails['smtp_password'] = "授权码"
 gitlab_rails['smtp_domain'] = "smtp.qq.com"
 gitlab_rails['smtp_authentication'] = "login"
 gitlab_rails['smtp_enable_starttls_auto'] = true
 gitlab_rails['smtp_tls'] = true
 gitlab_rails['gitlab_email_from'] = '******@qq.com'

修改上面的邮箱地址和授权码,其它的不要动。
保存好后重启使配置生效

gitlab-ctl reconfigure

执行命令进入控制台:

gitlab-rails console


发送一封测试邮件:Notify.test_email('收件人邮箱', 'title', 'body').deliver_now

这里有可能会报 SocketError (getaddrinfo: Name or service not known) 这个错误
Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第10张图片

前面都正常,最后报了错。看起来前面的配置是没有问题的。
这是DNS的问题,自动获取DNS改为手动配置,填8.8.8.8。(怎么设置linux的dns自行百度)
继续测试发送邮件成功,问题解决。

至此。gitlab的全新安装步骤已经讲完!如果你只需要安装gitlab,就不用看第三步!

 

第三步: 新服务器里面的gitlab数据从老服务器备份里面恢复

 

(1)进入你新服务器的gitlab备份目录

cd /var/opt/gitlab/backups/

把你第一步从老服务器拷贝出来的 1577425161_2019_12_27_11.5.1_gitlab_backup.tar 备份文件拷贝到此目录

我用的是xshell 和xftp上传拷贝文件

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第11张图片

(2)给文件777权限,不然无法恢复

chmod 777 1577425161_2019_12_27_11.5.1_gitlab_backup.tar

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第12张图片

(3)执行命令停止相关数据连接服务

# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

(4)执行命令从备份文件中恢复Gitlab

gitlab-rake gitlab:backup:restore BACKUP=备份文件编号

例如我的备份文件的编号是1577425161_2019_12_27_11.5.1,因此执行下面的命令即可恢复gitlab

gitlab-rake gitlab:backup:restore BACKUP=1577425161_2019_12_27_11.5.1

敲完命令后,出现第一个交互页面

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第13张图片

输入“yes”继续

反正出现都都敲yes

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第14张图片

出现这个页面说明备份恢复成功了!

(4)启动Gitlab

sudo gitlab-ctl start

需要注意的是,恢复完成后,你gitlab的所有权限和账户都是老的gitlab上面的一模一样!

如果忘了可以往下看第四步,教你强行改密码!

 

第四步: 强行改gitlab超级管理员权限

(1)切换到git账户

su - git

(2)进入gitlab命令行(时间可能有点长)
 

gitlab-rails console production

找到第一个用户,也就是超级管理员
 

user = User.where(id:1).first

修改密码(最后八位带大小写字符)
 

user.password='xx123456XX'

别忘了保存!

user.save

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第15张图片

重启gitlab服务!

gitlab-ctl   restart

好了,就可以用新密码登录了!

Centos7 安装Gitlab,并恢复备份gitlab,然后强制修改gitlab超级管理员账号密码。_第16张图片

老项目都恢复了!

 

拓展项:

第五步: linux设置定时任务,设置Gitlab自动备份

在crontab文件里面,每一行代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,每个字段之间用空格分割,没用的段用*代替,格式如下:

m h dom mon dow user command

其中:

    m: 表示分钟,可以是从0到59之间的任何整数。
    h:表示小时,可以是从0到23之间的任何整数。
    dom:表示日期,可以是从1到31之间的任何整数。
    mon:表示月份,可以是从1到12之间的任何整数。
    dow:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
    user : 表示执行的用户。
    command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件(如shell文件)。

实现每天凌晨2点进行一次自动备份:通过crontab使用备份命令实现,需重启cron服务

编辑定时任务设置

vi /etc/crontab 

添加定时任务项

#  添加定时任务,每天凌晨两点,执行gitlab备份
0 2 * * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

配置完了重启定时任务
 

/bin/systemctl restart  crond.service

设置备份过期时间:

默认只保存最近7天的备份,但是需要开启,编辑 /etc/gitlab/gitlab.rb 配置文件,找到gitlab_rails[‘backup_keep_time’],设置为你想要设置的值。

我这里设置成两天172800

修改完了后

保存修改配置

gitlab-ctl   reconfigure

启动GitLab

gitlab-ctl   restart

好了,至此,全部关于gitlab的搭建,备份,迁移,强制修改密码教程已经全部讲完,码字不易,如果能帮助到你,请点赞评论,谢谢支持!

 

 

附上gitlab常用命令:

 

1.运维管理

查看版本

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

实时查看日志

 gitlab-ctl tail

数据库关系升级

 gitlab-rake db:migrate

清理redis缓存

gitlab-rake cache:clear

升级GitLab-ce 版本

yum update gitlab-ce

升级PostgreSQL最新版本

 gitlab-ctl pg-upgrade

2.服务控制命令

启动/停止/重启所有 gitlab 组件:

gitlab-ctl start/stop/restart

启动指定模块组件:

 gitlab-ctl start redis/postgresql/gitlab-workhorse/logrotate/nginx/sidekiq/unicorn

停止指定模块组件:

gitlab-ctl stop 模块名

查看服务状态

gitlab-ctl status

生成配置并启动服务

 gitlab-ctl reconfigure

3.日志相关

实时查看所有日志

 gitlab-ctl tail

实时各个模块日志

gitlab-ctl tail redis/postgresql/gitlab-workhorse/logrotate/nginx/sidekiq/unicorn

4:Gitlab服务构成

GitLab由主要由以下服务构成,他们共同承担了Gitlab的运作需要

nginx: 静态web服务器
gitlab-shell: 用于处理Git命令和修改authorized keys列表
gitlab-workhorse: 轻量级的反向代理服务器
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列任务(异步执行)
unicorn:HTTP服务,GitLab Rails应用是托管在这个服务器上面的。

5:主要配置文件目录

主配置文件: /etc/gitlab/gitlab.rb
文档根目录: /opt/gitlab
默认存储库位置: /var/opt/gitlab/git-data/repositories
Nginx配置文件: /var/opt/gitlab/nginx/conf/gitlab-http.conf
Postgresql数据目录: /var/opt/gitlab/postgresql/data

 

你可能感兴趣的:(Linux相关,gitlab,gitlab备份迁移,gitlab强制修改密码)