前一篇文章我們已經知道Git人人都是中心,那他們怎么交互數據呢?
????????? 使用GitHub或者碼云等公共代碼倉庫
????????? 使用GitLab私有倉庫
目錄
一、安裝配置gitlab
安裝
初始化
這里初始化完成以后需要記住一個初始密碼
查看狀態
二、使用瀏覽器訪問,進行web界面操作
三、gitlab 命令行修改密碼
四、gitlab服務管理
五、公司的開發代碼提交處理流程
六、Gitlab 備份與恢復
1、查看系統版本和軟件版本
2、數據備份
3、測試數據恢復
(1) 安裝部署 gitlab server
(2) 恢復 gitlab
一、安裝配置gitlab
安裝
安裝依賴,并啟動ssh、防火墻開啟相應端口、postfix
yum install -y curl policycoreutils-python openssh-server perl
gitlab版本選擇地 Index of /gitlab-ce/yum/el7/ | 清華大學開源軟件鏡像站 | Tsinghua Open Source Mirror選擇對應的版本安裝動
yum install gitlab-jh-16.0.3-jh.0.el7.x86_64.rpm
? 安裝完成后他會自動啟動?
初始化
vim /etc/gitlab/gitlab.rb#找到下行并修改自己的ip
external_url 'http://10.12.153.72'
執行下面的初始化命令
gitlab-ctl reconfigure
這里初始化完成以后需要記住一個初始密碼
cat /etc/gitlab/initial_root_password
查看狀態
gitlab-ctl status
二、使用瀏覽器訪問,進行web界面操作
輸入賬號密碼登錄
登陸以后我們首先修改為中文,點擊頭像,點擊參數中設置
選擇中文后提交并刷新頁面
這樣看來就一目了然了哈
三、gitlab 命令行修改密碼
gitlab-rails console production irb(main):001:0> user = User.where(id: 1).first ? ? # id為1的是超級管理員 irb(main):002:0> user.password = 'yourpassword' ? ? # 密碼必須至少8個字符 irb(main):003:0> user.save! ? ? ? ? ? ? ? ? ? ? ? ? # 如沒有問題 返回true exit # 退出
四、gitlab服務管理
gitlab-ctl start ? ? ? ? ? ? ? ? ? ? ? # 啟動所有 gitlab 組件; gitlab-ctl stop ? ? ? ? ? ? ? ? ? ? ? ? # 停止所有 gitlab 組件; gitlab-ctl restart ? ? ? ? ? ? ? ? ? ? # 重啟所有 gitlab 組件; gitlab-ctl status ? ? ? ? ? ? ? ? ? ? ? # 查看服務狀態; gitlab-ctl reconfigure ? ? ? ? ? ? ? ? # 啟動服務; vim /etc/gitlab/gitlab.rb ? ? ? ? ? ? ? # 修改默認的配置文件; gitlab-ctl tail ? ? ? ? ? ? ? ? ? ? ? ? # 查看日志
五、公司的開發代碼提交處理流程
????????PM(項目主管/項目經理)在gitlab創建任務,分配給開發人員 開發人員領取任務后,在本地使用git clone拉取代碼庫 開發人員創建開發分支(git checkout -b dev),并進行開發 開發人員完成之后,提交到本地倉庫(git commit ) 開發人員在gitlab界面上申請分支合并請求(Merge request) PM在gitlab上查看提交和代碼修改情況,確認無誤后,確認將開發人員的分支合并到主分支(master) 開發人員在gitlab上Mark done確認開發完成,并關閉issue。這一步在提交合并請求時可以通過描述中填寫"close #1"等字樣,可以直接關閉issue
六、Gitlab 備份與恢復
1、查看系統版本和軟件版本
cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
?
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
8.15.4
2、數據備份
打開/etc/gitlab/gitlab.rb配置文件,查看一個和備份相關的配置項:
gitlab_rails['backup_path'] = "/data/gitlab/backups"
該項定義了默認備份出文件的路徑,可以通過修改該配置,并執行 gitlab-ctl reconfigure 或者 gitlab-ctl restart 重啟服務生效。
執行備份命令進行備份
/opt/gitlab/bin/gitlab-rake gitlab:backup:create
也可以添加到 crontab 中定時執行:
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
可以到/data/gitlab/backups找到備份包,解壓查看,會發現備份的還是比較全面的,數據庫、repositories、build、upload等分類還是比較清晰的。
設置備份保留時常,防止每天執行備份,肯定有目錄被爆滿的風險,打開/etc/gitlab/gitlab.rb配置文件,找到如下配置:
gitlab_rails['backup_keep_time'] = 604800
設置備份保留7天(7360024=604800),秒為單位,如果想增大或減小,可以直接在該處配置,并通過gitlab-ctl restart 重啟服務生效。
備份完成,會在備份目錄中生成一個當天日期的tar包。
3、測試數據恢復
(1) 安裝部署 gitlab server
具體步驟參見上面:gitlab server 搭建過程
(2) 恢復 gitlab
打開/etc/gitlab/gitlab.rb配置文件,查看一個和備份相關的配置項:
gitlab_rails['backup_path'] = "/data/gitlab/backups"
修改該配置,定義了默認備份出文件的路徑,并執行 gitlab-ctl reconfigure 或者 gitlab-ctl restart 重啟服務生效。
恢復前需要先停掉數據連接服務:
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
如果是臺新搭建的主機,不需要操作,理論上不停這兩個服務也可以。停這兩個服務是為了保證數據一致性。將老服務器/data/gitlab/backups目錄下的備份文件拷貝到新服務器上的/data/gitlab/backups
rsync -avz 1530773117_2019_03_05_gitlab_backup.tar 192.168.95.135:/data/gitlab/backups/
注意權限:600權限是無權恢復的。 實驗環境可改成了777,生產環境建議修改屬主屬組
pwd
/data/gitlab/backupschmod 777 1530773117_2019_03_05_gitlab_backup.tar
???????ll
total 17328900
-rwxrwxrwx 1 git git 17744793600 Jul 5 14:47 1530773117_2018_07_05_gitlab_backup.tar
執行下面的命令進行恢復:后面再輸入兩次yes就完成恢復了。
gitlab-rake gitlab:backup:restore
???????BACKUP=1530773117_2018_07_05_gitlab_backup.tar
恢復完成后,啟動剛剛的兩個服務,或者重啟所有服務,再打開瀏覽器進行訪問,發現數據和之前的一致:
gitlab-ctl start unicorngitlab-ctl start sidekiq或gitlab-ctl restart
注意:通過備份文件恢復gitlab必須保證兩臺主機的gitlab版本一致,否則會提示版本不匹配
希望能夠幫助到大家!!