gitlab安裝及升級(借鑒官網方法)


https://www.gitlab.cc/installation/#centos-6

1. 安裝並配置必要的依賴關系

如果你想使用 Postfix 發送郵件,請在安裝過程中根據提示選擇 'Internet Site'。 你也可以用 Sendmail 或者 配置一個自定義的 SMTP 服務 並 把它作為一個 SMTP 服務器。
在 CentOS 系統上,下面的命令將會打開系統防火牆 HTTP 和 SSH 的訪問。
sudo yum install curl openssh-server postfix cronie
sudo service postfix start
sudo chkconfig postfix on
sudo lokkit -s http -s ssh

2. 添加 GitLab 鏡像源並安裝

sudo yum install gitlab-ee
如果你不太習慣使用命令管道的方式安裝鏡像倉庫,你可以在這里找到 完整的安裝腳本 或者 選擇系統對應的安裝包 使用下面的命令手動安裝。
rpm -i gitlab-ee-XXX.rpm

3. 配置並啟動 GitLab

gitlab.rb的配置:
 
    external_url ' http://git.***.com'
    gitlab_rails['gitlab_email_enabled'] = true
    gitlab_rails['gitlab_email_from'] = ' gitlab@***.com'
    gitlab_rails['gitlab_email_reply_to'] = ' gitlab@***.com'
    gitlab_rails['gitlab_default_can_create_group'] = false
    備份目錄:
    gitlab_rails['manage_backup_path'] = true
    gitlab_rails['backup_path'] = "/export/gitlab/backups"
    gitlab_rails['backup_archive_permissions'] = 0644
    gitlab_rails['backup_keep_time'] = 604800
 
    
    git_data_dirs({
  "default" => {
    "path" => "/export/git-data"
   }
})
 
郵件配置:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = " smtp.***.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = " gitlab@***.com"
gitlab_rails['smtp_password'] = "Hn_2018"
gitlab_rails['smtp_domain'] = " ***.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
 
開啟注冊:
registry_external_url ' https://registry.***.com'
registry['enable'] = true
 
pages_external_url " http://***.cn/"
registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.pem"
registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"
 
sudo gitlab-ctl reconfigure
重啟配置

4. 通過瀏覽器訪問上一步配置的域名

第一次訪問 GitLab,系統會重定向 url 到重置密碼的頁面,你需要輸入初始化管理員賬號的密碼。 設置完成后,系統會重定向到登錄界面,你就可以使用剛才輸入的密碼登錄系統了。
系統默認的管理員賬號為 root, 登錄系統后,你可以修改管理員賬號為自己喜歡的賬號。
 
 
 
 
更改倉庫存儲位置
默認時GitLab的倉庫存儲位置在“/var/opt/gitlab/git-data/repositories”,在實際生產環境中顯然我們不會存儲在這個位置,一般都會划分一個獨立的分區來存儲倉庫的數據,我這里規划把數據存放在“/data/git-data”目錄下。
root@test1:~/tools# mkdir -pv /data/git-data 
mkdir: 已創建目錄 "/data"
mkdir: 已創建目錄 "/data/git-data"
root@test1:~# chown -R git.git /data/git-data  #修改創建目錄的屬主和屬組為git用戶 
root@test1:~/tools# cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak 
root@test1:~/tools# vim /etc/gitlab/gitlab.rb 
#啟用git_data_dirs參數,並修改如下: 
git_data_dirs  路徑 "/data/git-data"
 
gitlab-rake cache:clear RAILS_ENV=production
找不到倉庫的時候執行
 
 
 
/etc/gitlab/gitlab.rb中描述備份位置,默認備份到/var/opt/gitlab/backups/
 
如果想要備份到/mnt/backups,修改以下配置,去掉注釋
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = “/mnt/backups" #備份目錄
gitlab_rails['backup_archive_permissions'] = 0644 #生成的文件權限
gitlab_rails['backup_keep_time'] = 864000  #保留10天
 
修改完成后重新配置:
gitlab-ctl reconfigure
 
 
 
備份命令:
gitlab-rake gitlab:backup:create
 
 
自動備份:
也可以通過crontab使用備份命令實現自動備份:
 
sudo su -
crontab -e
加入以下, 實現每天凌晨2點進行一次自動備份:
 
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
 
 
 
恢復:
# 停止相關數據連接服務
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
 
# 從1393513186編號備份中恢復
gitlab-rake gitlab:backup:restore BACKUP=1393513186
 
# 啟動Gitlab
sudo gitlab-ctl start
 
 
遷移:
與恢復一樣,但是要求兩個GitLab版本號一致
 
 
GitLab備份腳本示例:
 
#!/bin/bash
#root user
#crontab -e
#add
#56 00 * * * /home/delta/gitautobackup.sh
#every data 00:56 backup
 
gitBaseBackup="GitLab_Backup"
gitnewBackup=$gitBaseBackup/Backup_new
gitoldBackup=$gitBaseBackup/Backup_old
 
ftpUrl="192.168.10.209"
ftpUser="administrator"
ftpPasswd="Delta123"
 
 
localDir="/home/delta/GitLab_Backup"
localnewBackup=$localDir/Backup_new
localoldBackup=$localDir/Backup_old
 
 
if [ ! -d $localnewBackup ]; then
mkdir -p $localnewBackup
fi
 
if [ ! -d $localoldBackup ]; then
mkdir -p $localoldBackup
fi
 
 
 
if [ -f $localnewBackup/*.tar ]; then
#delete old
echo "delete old backup"
rm -rf $localoldBackup/*
#move new to old
echo "move new to old"
mv $localnewBackup/* $localoldBackup
else
echo "no new backup to old"
fi
 
 
 
 
#git own backup directory
echo "change backup directory owner to git"
chown -R git $localDir
 
#create new git backup
echo "GitLab Backup ..."
gitlab-rake gitlab:backup:create
 
 
#check backup is whether successful
if [ ! -f $localnewBackup/*.tar ]; then
cd $localDir
currentTime=`date " %Y-%m-%d %H:%M:%S"` 
#currentTimeStamp=`date -d "$currentTime" `
echo ${currentTime}" Backup GitLab error! exit!"
echo ${currentTime}" Backup GitLab error! " >>GitLabBackupError.log
 
exit
fi
 
cd $localDir
 
#change owner back to delta
chown -R delta $localDir
 
#delete ftp backup
echo "push to ftp" 
ftp -n<<!
open $ftpUrl
user $ftpUser $ftpPasswd
binary
cd $gitBaseBackup
 
prompt off
 
lcd $localnewBackup/
put *.tar
bye
!
 
echo "backup successful"
exit
 
 
升級:

1. Make a backup (Optional)

If you would like to make a backup before updating, the below command will backup data in /var/opt/gitlab/backups by default.
sudo gitlab-rake gitlab:backup:create STRATEGY=copy

2. Update GitLab

Update to the latest version of GitLab.
sudo yum install -y gitlab-ee
 
 
大版本更新先更新之前最高版本例如:
    10.3.4更新到11.4.5需要先更新10版本最高的10.8.7更新后reconfigure,然后更新11.4.5,在reconfigure,restart
 
1 關閉部分gitlab服務
    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
    gitlab-ctl stop nginx
    
    備份:
    /opt/gitlab/bin/gitlab-rake gitlab:backup:create
 
crontab運行的定時備份
50 23 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
 
2 升級
    rpm -Uvh gitlab-ce-10.0.4-ce.0.el7.x86_64.rpm
 
3 重新配置gitlab
 
    gitlab-ctl reconfigure
 
4 重啟gitlab
    gitlab-ctl restart
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM