一、GitLab 安裝和配置
安裝社區版,GitLab-CE 版本:11.10.6
1、GitLab安裝
GitLab安裝環境 :CentOS7.6系統
安裝依賴包,並配置postfix服務爲GitLab郵件服務
# yum install -y curl openssh-server openssh-clients postfix cronie
# systemctl start postfix
# systemctl enable postfix
兩種安裝源(亦可離線rpm安裝)
- 從官方鏡像源安裝
添加GitLab倉庫並安裝到服務器上
# curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash
# yum install -y gitlab-ce # 自動安裝最新版本
- 從第三方鏡像源安裝
官方鏡像源在國外,國內安裝會很慢,甚至有時因網絡問題會無法安裝。
國內推薦使用清華大學開源軟件鏡像源。
# vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=Gitlab-CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
# yum makecache # 更新本地YUM緩存
# yum install -y gitlab-ce # 自動安裝最新版本
綁定域名或IP
# vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.nifa.org.cn:58088'
啓動GitLab,使得配置生效
漢化(可以忽略,直接直接執行命令重新引導配置文件)
# cp -rp /opt/gitlab/embedded/service/gitlab-rails{,.bak_$(date +%F)}
# unalias cp
# cp -rf gitlab-11-10-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/
# gitlab-ctl reconfigure
# gitlabpctl start
使用瀏覽器訪問GitLab
http://gitlab.www.org.cn:8088,然後設置root密碼。
GitLab安裝細節
主配置文件: /etc/gitlab/gitlab.rb
GitLab 文檔根目錄: /opt/gitlab
默認存儲庫位置: /var/opt/gitlab/git-data/repositories
GitLab Nginx 配置文件路徑: /var/opt/gitlab/nginx/conf/gitlab-http.conf
Postgresql 數據目錄: /var/opt/gitlab/postgresql/data
2、配置SMTP服務
如果你不想用服務器自帶的postfix服務來發郵件,可以改用SMTP服務。
# vim /etc/gitlab/gitlab.rb
gitlab_rails['smtp_address'] = "mail.nifa.org.cn"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "nifa@2019"
gitlab_rails['smtp_domain'] = "mail.nifa.org.cn"
gitlab_rails['smtp_authentication'] = 'plain'
gitlab_rails['smtp_enable_starttls_auto'] = true
# gitlab-ctl reconfigure
# gitlab-rake cache:clear RAILS_ENV=production # 清除緩存
3、GitLab配置HTTPS
GitLab默認是使用HTTP的,可以手動配置爲HTTPS
創建ssl目錄,用於存放SSL證書
# mkdir -p /etc/gitlab/ssl
# chmod 0700 /etc/gitlab/ssl
上傳證書並修改證書權限
# chmod 600 /etc/gitlab/ssl/*
修改GitLab的配置文件
# vim /etc/gitlab/gitlab.rb
external_url "https://gitlab.xxx.com"
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.xxx.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.xxx.com.key"
重新引導配置,使其生效
# gitlab-ctl reconfigure
以上操作後,GitLab自帶的Nginx服務的配置文件 /var/opt/gitlab/nginx/conf/gitlab-http.conf 會被重新修改
不用額外再配置,HTTP 會自動跳轉到 HTTPS 。
二、GitLab 常用命令
運維管理排查
# 查看版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
# 檢查gitlab
gitlab-rake gitlab:check SANITIZE=true --trace
# 實時查看日誌
gitlab-ctl tail
# 數據庫關係升級
gitlab-rake db:migrate
# 清理redis緩存
gitlab-rake cache:clear
# 升級GitLab-ce 版本
yum update gitlab-ce
# 升級PostgreSQL最新版本
gitlab-ctl pg-upgrade
服務管理
# 啓動所有 gitlab 組件:
gitlab-ctl start
# 停止所有 gitlab 組件:
gitlab-ctl stop
# 停止所有 gitlab postgresql 組件:
gitlab-ctl stop postgresql
# 停止相關數據連接服務
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 重啓所有 gitlab 組件:
gitlab-ctl restart
# 重啓所有 gitlab gitlab-workhorse 組件:
gitlab-ctl restart gitlab-workhorse
# 查看服務狀態
gitlab-ctl status
# 生成配置並啓動服務
gitlab-ctl reconfigure
日誌
# 實時查看所有日誌
gitlab-ctl tail
# 實時檢查redis的日誌
gitlab-ctl tail redis
# 實時檢查postgresql的日誌
gitlab-ctl tail postgresql
# 檢查gitlab-workhorse的日誌
gitlab-ctl tail gitlab-workhorse
# 檢查logrotate的日誌
gitlab-ctl tail logrotate
# 檢查nginx的日誌
gitlab-ctl tail nginx
# 檢查sidekiq的日誌
gitlab-ctl tail sidekiq
# 檢查unicorn的日誌
gitlab-ctl tail unicorn
四、GitLab備份和恢復
備份
修改備份目錄
GitLab備份的默認目錄是 /var/opt/gitlab/backups ,如果想改備份目錄,可修改/etc/gitlab/gitlab.rb:
gitlab_rails['backup_path'] = '/data/gitlab_backups/'
# gitlab-ctl reconfigure
備份命令(建議寫到crontab裏)
gitlab-rake gitlab:backup:create
備份保留7天
可設置只保留最近7天的備份
#vim /etc/gitlab/gitlab.rb
# 數值單位:秒
gitlab_rails['backup_keep_time'] = 604800
# gitlab-ctl reconfigure
恢復
備份文件:
/data/gitlab_backups/1561702536_2019_06_28_11.10.6_gitlab_backup.tar
停止 unicorn 和 sidekiq ,保證數據庫沒有新的連接,不會有寫數據情況。
# 停止相關數據連接服務
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 指定恢復文件,會自動去備份目錄找。確保備份目錄中有這個文件。
# 指定文件名的格式類似:1561702536_2019_06_28_11.10.6,程序會自動在文件名後補上:“_gitlab_backup.tar”
# 一定按這樣的格式指定,否則會出現 The backup file does not exist! 的錯誤
gitlab-rake gitlab:backup:restore BACKUP=1561702536_2019_06_28_11.10.6
# 啓動Gitlab
gitlab-ctl start