阿龍學堂- GitLab部署及配置

GitLab部署及配置

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章