GitLab部署

1、 Gitlab安装

官网:linux

https://about.gitlab.com/downloads

下载地址:(选择相应的版本进行下载)nginx

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

本次文档的安装环境与版本:git

centos7.5 64位,内存2G+      ; 安装版本:gitlab-ce-11.5.6-ce.0.el7.x86_64.rpmredis

 

安装插件:sql

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:shell

rpm -ivh gitlab-ce-11.5.6-ce.0.el7.x86_64.rpm

修改配置文件:数据库

vim /etc/gitlab/gitlab.rb

http://{{ip}}      #此处改成本机的IP或者域名vim

默认用户centos

root缓存

5iveL!fe

修改完后生效命令:gitlab-ctl reconfigure

查看状态:gitlab-ctl status

2、 Gitlab配置

 

Gitlab组件介绍:

 

nginx:静态Web服务器

 

gitlab-shell:用于处理Git命令和修改authorized keys列表

 

gitlab-workhorse:轻量级的反向代理服务器

 

logrotate:日志文件管理工具

 

postgresql:数据库

 

redis:缓存数据库

 

sidekiq:用于在后台执行队列任务(异步执行)

 

unicornGitLab Rails应用是托管在这个服务器上面的

 

3、 经常使用命令:

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服务

 

4、 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

5、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

6、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

7、检查服务日志信息

# 检查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

8、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!

而后使用重置过的密码从新登陆

相关文章
相关标签/搜索