gitlab本地伺服器的搭建
gitlab本地伺服器搭建
1.依賴包安裝
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates
執行完成後,郵件配置時選擇Internet即可.
2.GitLab安裝
2.1官方教程
如果按照官方安裝方法, 直接執行下列命令即可.
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
但按照官方教程安裝會非常慢, 推薦使用下列方式, 利用清華源安裝.
2.2清華源
首先信任GitLab的GPG公鑰
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
接下來開啟 gitlab-ce.list
文字
sudo vim /etc/apt/sources.list.d/gitlab-ce.list
然後寫入如下內容
deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main
最後 :wq
儲存退出. 文字寫入成功之後, 執行下列命令安裝GitLab.
sudo apt-get update sudo apt-get install gitlab-ce
3.GitLab啟動
安裝完成之後啟動GitLab
sudo gitlab-ctl reconfigure
開啟sshd和postfix服務
service sshd start
service postfix start
最後輸入下列命令, 檢查GitLab是否成功執行.
sudo gitlab-ctl status
如果成功執行, 在瀏覽器中輸入http://127.0.0.1便可訪問到GitLab介面. 首次使用時, GitLab會提示設定密碼, 設定完成之後便可成功使用.
4.GitLab配置
4.1更改伺服器IP地址
開啟gitlab.yml檔案
cd /opt/gitlab/embedded/service/gitlab-rails/configsudo vim gitlab.yml
找到下列內容
gitlab: ## Web server settings (note: host is the FQDN, do not include http://) host: localhost port: 80 https: false
將localhost修改為本機IP, 例如修改為192.168.1.25.
gitlab: ## Web server settings (note: host is the FQDN, do not include http://) host: 192.168.1.25 port: 80 https: false
修改完成並儲存之後, 重啟GitLab伺服器.
sudo gitlab-ctl restart
重啟成功之後, 便可通過http://192.168.1.25訪問GitLab伺服器.
4.2更改伺服器埠
如果80和8080埠被其他應用佔用, 比如apache, 此時就要更改GitLab伺服器埠, 此處將埠改為8081.
首先開啟gitlab.rb檔案
cd /etc/gitlabvim gitlab.rb
找到下列內容
#nginx['listen_port']=nil
修改為
nginx['listen_port']=8081
接下來重啟GitLab配置
sudo gitlab-ctl reconfigure
然後重啟GitLab伺服器
sudo gitlab-ctl restart
最後便可用http://192.168.1.25:8081訪問gitlab伺服器.
4.3設定GitLab開機自啟動
設定GitLab開機自啟動命令為
sudo systemctl enable gitlab-runsvdir.service
禁止GitLab開機自啟動命令為
sudo systemctl disable gitlab-runsvdir.service
5.GitLab備份
5.1建立備份檔案
使用下列命令建立GitLab備份
sudo gitlab-rake gitlab:backup:create
然後便會在 /var/opt/gitlab/backups
目錄下建立一個類似於15504156082019021711.5.1gitlabbackup.tar的檔案. 其中開頭部分是建立的日期.
5.2修改備份目錄
首先開啟gitlab.rb檔案
cd /etc/gitlabvim gitlab.rb
找到下列命令
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
然後修改後面的地址即可. 修改完成之後重啟配置檔案生效.
sudo gitlab-ctl reconfigure
5.3設定自動備份機制
手動備份過於麻煩, 所以通過crontab設定自動備份. crontab檔案之中, 每一行表示一項任務, 每行的每個欄位表示一項設定. crontab共6個欄位, 其中前5個欄位設定執行的時間段, 第6個欄位設定命令.
m h dom mon dow user user command
其中
m: 表示分鐘,可以是從0到59之間的任何整數。 h:表示小時,可以是從0到23之間的任何整數。 dom:表示日期,可以是從1到31之間的任何整數。 mon:表示月份,可以是從1到12之間的任何整數。 dow:表示星期幾,可以是從0到7之間的任何整數,這裡的0或7代表星期日。 user : 表示執行的使用者。 command:要執行的命令,可以是系統命令,也可以是自己編寫的指令碼檔案(如shell檔案)。
現在我們來實現每天23點自動備份GitLab檔案, crontab命令如下
0 23 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
為保證安全, 使用雙備份機制. 所以再加一個crontab任務, 設定每天23點1分, 將生成的gitlab檔案放到外接硬碟之中, crontab命令如下
1 23 * * * cp -rf /var/opt/gitlab/backups/* /media/cciip/新加捲1/gitlab_backup/
編輯完/etc/crontab檔案之後, 需要重新啟動crontab服務, 命令如下
# 重新載入cron配置檔案sudo /usr/sbin/service cron reload# 重啟cron服務sudo /usr/sbin/service cron restart
至此, 便能進行自動備份, 而且是雙備份機制.
5.4設定備份過期時間
GitLab每天在備份, 檔案會一直增大, 所以最好設定個過期時間, 比如7天.
首先開啟/etc/gitlab/gitlab.rb檔案
cd /etc/gitlabsudo vim gitlab.rb
找到下列命令
# gitlab_rails['backup_keep_time'] = 604800
修改為
# 604800 = 60*60*24*7gitlab_rails['backup_keep_time'] = 604800
最後重啟GitLab配置檔案即可.
sudo gitlab-ctl reconfigure
5.5恢復備份檔案
如果想要將GitLab伺服器遷移到其他主機上, 首先確保新伺服器GitLab版本和老伺服器GitLab版本相同.
然後copy備份檔案到新伺服器上. 比如此時我把192.168.1.25伺服器上的備份檔案拷貝到192.168.1.24上面, 可以通過如下命令進行.
scp /var/opt/gitlab/backups/1550415608_2019_02_17_11.5.1_gitlab_backup.tar [email protected]:/var/opt/gitlab/backups
然後在192.168.1.24伺服器上進行如下操作
1.將備份檔案許可權改為777
chmod 777 1550415608_2019_02_17_11.5.1_gitlab_backup.tar
2.執行命令停止相關資料連線服務
gitlab-ctl stop unicorngitlab-ctl stop sidekiq
3.執行命令從備份檔案中恢復GitLab
gitlab-rake gitlab:backup:restore BACKUP=1550415608_2019_02_17_11.5.1_gitlab_backup.tar
最後啟動GitLab伺服器即可
sudo gitlab-ctl start
現在便可通過http://192.168.1.24:8081訪問GitLab伺服器.
參考
- Ubuntu16.04搭建GitLab伺服器教程
- GitLab官方搭建教程地址: https://about.gitlab.com/install/#ubuntu