官網: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
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_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-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_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
使用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!
而後使用重置過的密碼從新登陸