一、Gitlab安装
官网:
https://about.gitlab.com/downloads
下载地址:(选择相应的版本进行下载)
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
本次文档的安装环境与版本:
centos7.5 64位,内存2G+ ; 安装版本:gitlab-ce-11.5.6-ce.0.el7.x86_64.rpm
安装插件:
sudo sed -ri 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/configrm -rf /var/run/yum.pid sudo sed -ri 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/configyum -y install epel.release sudo yum install curl policycoreutils openssh-server openssh-clients sudo systemctl enable sshd sudo systemctl start sshd sudo yum install postfix sudo systemctl enable postfix sudo systemctl start postfix sudo firewall-cmd --permanent --add-service=http sudo systemctl reload firewalld sudo setenforce 0 sudo sed -ri 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config
安装gitlab:
rpm -ivh gitlab-ce-11.5.6-ce.0.el7.x86_64.rpm
修改配置文件:
vim /etc/gitlab/gitlab.rb
http://{{ip}} #此处改为本机的IP或者域名
默认用户
root
5iveL!fe
修改完后生效命令:gitlab-ctl reconfigure
查看状态:gitlab-ctl status
二、Gitlab配置
Gitlab组件介绍:
nginx:静态Web服务器
gitlab-shell:用于处理Git命令和修改authorized keys列表
gitlab-workhorse:轻量级的反向代理服务器
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列任务(异步执行)
unicorn:GitLab Rails应用是托管在这个服务器上面的
三、常用命令:
gitlab-ctl status
gitlab-ctl start
gitlab-ctl stop
gitlab-ctl restart
gitlab-ctl tail nginx
/var/opt/gitlab/git-data/repositories/root:库默认存储目录
/opt/gitlab: 应用代码和相应的依赖程序
/var/opt/gitlab:gitlab-ctl reconfigure命令编译后的应用数据和配置文件,不需要人为修改配置
/etc/gitlab: 配置文件目录
/var/log/gitlab:此目录下存放了gitlab各个组件产生的日志
/var/opt/gitlab/backups/:备份文件生成的目录
更改配置文件需要进行以下操作:
需要以下操作
1、gitlab-ctl reconfigure 重置配置文件
2、gitlab-ctl show-config 验证配置文件
3、gitlab-ctl restart 重启gitlab服务
四、Gitlab备份管理
配置文件中加入
#gitlab_rails['backup_path'] = '/data/backup/gitlab' #更改备份目录
gitlab_rails['backup_path'] =' /data/backups/gitlab/backups'
#gitlab_rails['backup_keep_time'] = 604800 #备份文件保留7天
gitlab_rails['backup_keep_time'] = 6048000 #备份文件保留70天
如果自定义备份目录需要赋予git权限
mkdir /data/backups/gitlab/backups chown -R git.git /data/backups/gitlab/backups
定时任务Crontab中加入
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
策略建议:本地保留三到七天,在异地备份永久保存
附:gitlab-rake gitlab:backup:create RAILS_ENV=production
gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1524129806_2018_04_19
五、Gitlab备份恢复
恢复时,先停掉服务,以免双写导致数据错误
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
恢复时,选择的版本就是备份是产生的Linux时间戳
gitlab-rake gitlab:backup:restore BACKUP=1550599209
date -d @1550599209
附:
备份迁移时的问题:https://blog.csdn.net/longfeicool4321/article/details/85251552
六、Gitlab邮件配置
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'dulingyu52@126.com'
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.126.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "dulingyu"
gitlab_rails['smtp_password'] = "user_password"
gitlab_rails['smtp_domain'] = "126.com"
gitlab_rails['smtp_authentication'] = "login
七、检查服务日志信息
# 检查redis的日志
sudo gitlab-ctl tail redis
# 检查postgresql的日志
sudo gitlab-ctl tail postgresql
# 检查gitlab-workhorse的日志
sudo gitlab-ctl tail gitlab-workhorse
# 检查logrotate的日志
sudo gitlab-ctl tail logrotate
# 检查nginx的日志
sudo gitlab-ctl tail nginx
# 检查sidekiq的日志
sudo gitlab-ctl tail sidekiq
# 检查unicorn的日志
sudo gitlab-ctl tail unicorn
八、Gitlab管理员密码重置
使用rails工具打开终端
sudo gitlab-rails console production
查询用户的email,用户名,密码等信息,id:1 表示root账号,id:2 表示创建的第二个账号,依次类推
user = User.where(id: 1).first
重新设置密码
user.password = '新密码' user.password_confirmation = '新密码'
保存密码
user.save!
完整的操作ruby脚本
user = User.where(id: 1).first user.password = '新密码' user.password_confirmation = '新密码' user.save!
然后使用重置过的密码重新登录