一、Gitlab搭建

1、配置环境准备

关闭防火墙、selinux、设置主机名

systemctl disable firewalld
sed -i '/SELINUX/s/enforcing/disabled/' /etc/sysconfig/selinux
hostnamectl set-hostname gitlab.example.com

2、安装GitLab

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

安装成功如图所示:

3、修改Gitlab配置文件

修改配置文件:

vim /etc/gitlab/gitlab.rb
# 这是Gitlab跳转的URL地址,这里面不要设置成IP地址
external_url 'http://git.xxx.com'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
# 配置邮箱
gitlab_rails['gitlab_email_from'] = 'sa@xxx.com'
gitlab_rails['manage_backup_path'] = true
# 备份路径
gitlab_rails['backup_path'] = "/data/opt/gitlab/backups"
git_data_dirs({
   "default" => {
     "path" => "/data/opt/gitlab/git-data",
     "failure_count_threshold" => 10,
     "failure_wait_time" => 30,
     "failure_reset_time" => 1800,
     "failure_timeout" => 30
    }
 })

 gitlab_rails['rack_attack_git_basic_auth'] = {
   'enabled' => true,
   # IP白名单
   'ip_whitelist' => ["127.0.0.1","218.17.x.x","218.17.x.x"],
   'maxretry' => 10,
   'findtime' => 60,
   'bantime' => 3600
 }
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "sa@xxx.com"
gitlab_rails['smtp_password'] = "xxxxxxx"
gitlab_rails['smtp_domain'] = "jybxxxx.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
unicorn['port'] = 8088
gitlab_shell['custom_hooks_dir'] = "/opt/gitlab/embedded/service/gitlab-shell/custom_hooks"
nginx['enable'] = true

修改配置后需重新加载配置:

gitlab-ctl reconfigure

重启gitlab

gitlab-ctl restart

查看当前gitlab的状态

gitlab-ctl status

Gitlab常用命令:

gitlab-ctl start 
gitlab-ctl stop # 停止所有 gitlab 组件;
gitlab-ctl restart # 重启所有 gitlab 组件;
gitlab-ctl status # 查看服务状态;
gitlab-ctl reconfigure # 重新加载配置;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
gitlab-ctl tail # 查看日志;
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION # 查看版本号

5、gitlab的使用

登录GitLab
1、在浏览器的地址栏中输入ECS服务器的公网IP即可登录GitLab的界面,第一次登录使用的用户名和密码为 root 和 5iveL!fe。

2、首次登录会强制用户修改密码。密码修改成功后,输入新密码进行登录。

二、Gitlab的备份

备份时需要保持gitlab处于正常运行状态,直接执行以下命令进行备份

gitlab-rake gitlab:backup:create

使用以上命令会在/var/opt/gitlab/backups目录下创建一个压缩包, 这个压缩包就是Gitlab整个的完整部分。

可以通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录

几个需要备份的文件:

/etc/gitlab/gitlab.rb # 配置文件
/var/opt/gitlab/nginx/conf # nginx配置文件
/etc/postfix/main.cf # 邮件配置备份

1.1 修改备份文件目录

gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

修改完成之后使用gitlab-ctl reconfigure命令重载配置文件即可

1.2 设置备份过期时间

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_keep_time'] = 604800    #以秒为单位

1.3 gitlab自动备份

创建定时任务

[root@gitlab ~]# crontab -e
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

三、Gitlab迁移,恢复备份

迁移的整体思路是:

1、在新服务器上安装相同版本的gitlab

2、将备份生成的备份文件发送到新服务器的相同目录下

在老服务器上将备份文件发送至新服务器的相应目录下

scp /data/opt/gitlab/backups/1606932571_2020_12_03_11.0.1_gitlab_backup.tar  root@10.16.139.176:/data/opt/gitlab/backups/

3、Gitlab恢复

[root@gitlab ~]# gitlab-ctl stop unicorn        #在新机器上停止相关数据连接服务
[root@gitlab ~]# gitlab-ctl stop sidekiq
[root@gitlab-new ~]# chmod 777 /data/opt/gitlab/backups/1606932571_2020_12_03_11.0.1_gitlab_backup.tar

修改权限,如果是从本服务器恢复可以不修改

[root@gitlab ~]# gitlab-rake gitlab:backup:restore BACKUP=1606932571_2020_12_03_11.0.1

#从1606932571_2020_12_03_11.0.1编号备份中恢复

按照提示输入两次yes并回车

#启动gitlab
[root@gitlab ~]# gitlab-ctl start

浏览器访问新服务器的地址进行查看,迁移成功

四、Gitlab的升级

#备份,防止更新失败
[root@gitlab ~]# gitlab-rake gitlab:backup:create
#关闭gitlab服务
[root@gitlab ~]# gitlab-ctl stop unicorn
[root@gitlab ~]# gitlab-ctl stop sidekiq
[root@gitlab ~]# gitlab-ctl stop nginx

下载新版gitlab的rpm包安装,安装时选择升级

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

安装的过程中可能会出现报错

Error executing action run on resource 'ruby_block[directory resource: /var/opt/gitlab/git-data/repositories]'

解决方法为

[root@gitlab ~]# chmod 2770 /var/opt/gitlab/git-data/repositories


安装成功后重新加载配置并启动

[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl restart

验证版本号:

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

但是发现无法进入,提示500错误

重新重启一次

gitlab-ctl reconfigure
gitlab-ctl restart

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。