場景描述
1 Git服務器:centos6.5,本地環境內網運行。
2 正式服務器:windows server 2008,阿里雲公網運行
業務需求:能夠將Git服務器存儲的代碼,自動發佈至正式服務器上。
準備工具
1、Gitlab >=9.0
2、Gitlab-runner
3、powershell
4、花生殼(免費版)
前置條件
1、Gitlab正確配置,並正常運行。
2、Git服務器內網固定IP (如:192.168.0.19)
3、兩臺服務器都裝有Git同版本的客戶端。
本教程默認以上工具和前置條件都已經實現。
安裝工具
首先當然是先安裝準備工具。
1 安裝Gitlab (安裝教程百度一下,一大把)
2 給windows服務器安裝powershell(安裝教程百度一下,一大把)
3 給Git服務器安裝花生殼(centos版)(安裝教程百度一下,一大把)
配置Gitlab
都安裝好之後,先來看Gitlab
以我測試的爲例,進入到項目列表,然後選擇一個要部署的項目
然後選擇 Settings->Pipelines,
Gitlab有兩種執行Runner的模式:
一種是Specific Runners,該模式只能作用域當前選擇的項目。
另一種是Shared Runners,該模式可以作用域所有項目,但是需要root權限才能創建,一般也用不到這個模式。
我們選擇Specific模式
提示中的:2和3項的URL和Token,這兩個將是配置Runner的關鍵信息。
配置Runner
現在打開正式服務器,安裝Gitlab-runner,安裝好之後,要註冊剛纔的test項目,過程中需要選擇True/False的,選擇True。
cmd定位到Gitlab-runner根目錄,執行 gitlab-runner.exe register 命令,
將URL和Token填好,監聽的分支Tag填寫master,表示只有當master變動的時候,才觸發自動部署。
然後,在項目根目錄創建.gitlab-ci.yml文件,寫入以下內容,保存至項目根目錄
stages:
- build
build:
stage: build
script:
# 打開到項目目錄
- cd E:\php\phpStudy\WWW
# 執行pull操作
- git pull origin master
only:
# 只有master分支才執行
- master
測試
在Gitlab上,提交一次合併請求,當合並請求被通過時,看同步是否能完成。如果出現對號符號,則表示Updates已經更新至正式服務器