返回部落格

如何使用 VPS 設定 Git 自動部署

如何使用 VPS 設定 Git 自動部署

Git 是軟體開發領域中最受歡迎的版本控制系統。它是開源的,自 2005 年以來一直由 Linus Torvalds(著名的 Linux 創始人)積極維護。如今,數量驚人的軟體專案(包括商業專案)都使用 Git 進行版本管理。

Git 採用分散式架構,使其成為 DVCS (Distributed Version Control System) 的完美範例。使用 Git,我們可以同時管理本地和遠端存放庫。在本指南中,我們將示範如何使用 VPS 設定 Git 專案的自動部署.

先決條件

在本指南中,將會有一個本地存放庫和一個位於 VPS 上的遠端存放庫。本地存放庫會將變更推送到遠端存放庫。從遠端存放庫,我們可以將變更推送到 beta 或  live 分支。為了實現這一點,您需要先處理幾個先決條件。

為了建立與 VPS 的安全連線,我們將使用 SSH。幸運的是,Git 也支援將 SSH 作為連接到遠端存放庫的協定。本指南探討了 在 Ubuntu 上設定 SSH 以連接到遠端伺服器.

設定 VPS

在我們的遠端伺服器上,我們將進行以下設定:

  • 實際運作目錄: /var/www/dummy-domain.com
  • 伺服器存放庫: /var/repo/site.git

從本地電腦,Git 會將更新推送到 VPS 存放庫。從 VPS 存放庫,我們將設定一個指令碼,Git 將使用該指令碼自動將其推送到實際運作目錄。也可以為 beta 版本設定存放庫。

  • 建立存放庫

連接到 VPS 並建立存放庫位置:

Deployment with Git screenshot 1

接下來,初始化 Git 存放庫:

Deployment with Git screenshot 2

在這裡,旗標 --bare 表示不會有來源檔案,只有版本控制組件。

  • 掛鉤

接下來,我們將為存放庫設定掛鉤。每個 Git 存放庫都包含一個名為 hooks 的資料夾。它包含範例檔案,可用作掛鉤和各種自訂動作的範本。

根據 Git 的 official documentation,有三種類型的掛鉤:

  • pre-receive: 伺服器一收到推送請求就會執行。
  • post-receive: 推送請求完成時執行。
  • update: 類似於 pre-receive。但是,它在每個分支上執行一次。

在存放庫的位置,執行 ls 指令:

Deployment with Git code screenshot 3

將目前目錄變更為 hooks:

Deployment with Git code screenshot 4

現在,建立 post-receive 指令碼:

在指令碼中,輸入以下程式碼。請務必相應地變更目錄位置:

Deployment with Git code screenshot 6

儲存檔案並關閉編輯器。將檔案設定為可執行檔:

Deployment with Git code screenshot 7

現在,每次推送完成時,Git 都會查看 post-receive 指令碼並相應地將檔案放置到位。

設定本地電腦

遠端機器已準備好接收傳入的 Git 專案更新。接下來,我們將設定本地存放庫以將 VPS 用作遠端 Git 伺服器。

讓我們建立一個範例 Git 專案目錄:

Configuring the Local Machine

Deployment with Git code screenshot 8

sample Git project directory:

現在,初始化存放庫:

Deployment with Git code screenshot 9

我們必須宣告存放庫的遠端路徑。在這裡,我們將遠端位置稱為 live 分支。然後,執行以下指令:

sudo git remote

讓我們測試一下。我們在專案目錄中新增了一個 Shell 指令碼:

project directory

接下來,將檔案新增至專案並進行提交:

Deployment with Git code screenshot 10

In the next command, we’ll push the project to the live server:

Deployment with Git code screenshot 11

Git 將使用 SSH 連線到 VPS。如果 SSH 連線設定為使用密碼,Git 將會要求輸入驗證密碼。

Beta 版本庫

如果專案不是一步到位部署呢?也許它需要在一個 beta 目錄中進行進一步測試。使用目前為止介紹的方法,我們可以在 VPS 中建立另一個分支,稱為 beta 分支。

  • 在 VPS 上設定 Beta 分支

首先,我們需要為 VPS 建立目錄。連線到 VPS 並在 下建立一個目錄/var/www:

現在,我們需要一個 Git 版本庫來作為 beta 分支:

初始化版本庫:

sudo git init

就像之前一樣,實作一個 post-receive 腳本:

sudo nano

之後,輸入以下程式碼:

GNU nano

儲存檔案並關閉編輯器。將 post-receive 標記為可執行檔案:

sudo chmod
  • 在本地電腦上新增 Beta 版本庫

我們現在準備好將 beta 版本庫新增到我們的本地版本庫中。在本地專案目錄內,執行以下 Git 命令:

瞧!本地版本庫現在已設定好 beta 遠端版本庫。嘗試推送變更:

sudo git add
  • 在 VPS 中從 Beta 移至 Live

假設所有變更都已累積到 beta 版本庫。您要如何將變更推送到 live 版本庫?這非常簡單。在 VPS 上的 beta 版本庫中,我們新增本地的 live 版本庫。然後,我們只需將 beta 版本推送到 live 版本庫。

連線到 VPS,並執行以下命令:

然後,您可以將 beta 版本推送到 live:

sudo git push live master

結語

本指南成功示範了如何設定並將 VPS 用作 Git 專案的遠端版本庫。VPS 可以自動部署最新的程式碼和檔案,無需任何複雜的流程。它還可以作為多個開發團隊之間協作的中心。

在 Git 的幫助下,您可以建立一個簡單的自動部署機制。然而,為了進行妥善的專案管理,建議使用像 GitLab 這樣的工具。以下指南展示了在 VPS 上安裝和部署 GitLab 來管理多個專案。您也可以參考 如何在 Ubuntu 20.04 上設定 GitLab 持續整合 (CI) 管線.

祝您開發愉快!

author

Hark Labs

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的創意設計師,專注於透過傳統與創新行銷渠道建立一致的企業形象。他擅長將藝術願景與策略行銷相融合,創造具有影響力的品牌敘事。

留言

目前尚無留言。成為第一個留言的人吧。