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