GitLab部署

一、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:用于在后台执行队列任务(异步执行)

unicornGitLab 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/gitlabgitlab-ctl reconfigure命令编译后的应用数据和配置文件,不需要人为修改配置

/etc/gitlab 配置文件目录

/var/log/gitlab:此目录下存放了gitlab各个组件产生的日志

/var/opt/gitlab/backups/:备份文件生成的目录

更改配置文件需要进行以下操作:

需要以下操作

1gitlab-ctl reconfigure                  重置配置文件

2gitlab-ctl show-config                   验证配置文件

3gitlab-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!

然后使用重置过的密码重新登录

原文地址:https://www.cnblogs.com/ling-yu-amen/p/10487550.html