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!

而後使用重置過的密碼從新登陸

相關文章
相關標籤/搜索